用VS15编写多文件程序的时候,c语言提示不允许使用不完整的类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用VS15编写多文件程序的时候,c语言提示不允许使用不完整的类型相关的知识,希望对你有一定的参考价值。
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "linker.h" //链表操作:函数原型声明
#include "fileOperate.h" //文件操作:函数原型声明
#include "tools.h" //辅助工具:函数原型声明
#include "employeeManage.h" //员工管理:函数原型声明
#include "employeeSearch.h" //查询管理:函数原型声明
#include "sort.h" //排序管理:函数原型声明
#include "statistic.h" //统计管理:函数原型声明
extern const char fileFullPath[40];
extern struct Employee *head;
extern int maxId;
void addEmployee()
int choice = 0;
Employee * newEmployee = (Employee *)malloc(sizeof(Employee));/*这里的sizeof(Employee)的Employee报了错,不允许使用不完整的类型
#pragma once
#define HOURSALARY 100 //小时工资(100元每小时);
#define MANAGERSALARY 8000 //经理:固定月薪为8000;
#define SALESMANAGERFIXEDSALARY 5000 //销售经理:底薪(5000)
//枚举型岗位:销售员、技术员、销售经理、经理
enum workpost SALESMAN, TECHNICIAN, SALESMANAGER, MANAGER ;
//员工类型
typedef struct node
int id;
char name[10];
char sex[3]; //性别:男或女
int age;
char department[20];//部门
enum workpost post; //枚举型岗位
int workHour; //当月工作小时数
double sales; //当月月销售额
double salary; //月工资
struct node * next;
Employee;
//添加一个结点:添加newEmployee指向的结点到链表末尾。
//返回结果:NULL表示添加成功,否则表示添加失败,返回的指针指向已有的销售经理。
Employee * addNode(Employee ** headp, Employee * newEmployee);
//删除一个结点:根据员工号删除员工。
//返回结果:0表示无员工号为id的员工,1表示成功删除。
int deleteEmployeeById(Employee ** headp, int id);
//交换两个结点的数据:交换p和q指向的两个结点数据,但不交换指针域。
void exchangeData(Employee * p, Employee * q);
这是在linker头文件里对Employee的结构体的声明类型
就是别的地方都没报错,但是就Employee这里提醒不允许使用不完整类型。= =就很懵逼了
诶诶可以了,为什么会这样啊?在别的文件用employee也不出错啊
追答一般情况是不会出现这种情况的,你可能要查一下是不是单词拼写错误,还有一个就是VS查错机制有漏洞,我一般不用这个软件,所以也不太清楚
追问我查过了都是直接复制粘贴不是拼写啊……所有employee报错都用struct node代替就没事了
追答那应该还是你的头文件包含出了问题,这种同类型别名没有什么其它问题可以考虑
参考技术B 搜一下:用VS15编写多文件程序的时候,c语言提示不允许使用不完整的类型用VS2010编写C程序出现"未定义标识符"是怎么回事
这是我用VS2010用C编写俄罗斯方块程序的时候出现的错误提示,鼠标放到上面会提示"Error:未定义标识符"initgraph"是怎么回事?怎么解决?
已经把头文件包括在里面了,右键单击转到定义,再返回,红曲线消失了。把VS2010关了重新打开 又有了 该怎么办
1、如果是你自己写的函数,最好在主文件前声明一下。就是如void initgraph(...);
2、如果你自己写了initgraph函数的话,错误就发生在函数的引用上,你应该在用之前声明他,就算你包括了他的头文件,也必须在用之前声明他。
3、还有一种方法,就是在你声明initgraph函数的文件里,在他前面加上extern这样就没问题了。
4、initgraph是函数名 ,功能为初始化图形系统。pathtodriver表示存放图形驱动文件的路径。头文件是graphics.h。
扩展资料
VS2010特点:
1、支持Windows Azure,微软云计算架构迈入重要里程碑。
2、助力移动与嵌入式装置开发,三屏一云商机无限。
3、实践当前最热门的 Agile/Scrum 开发方法,强化团队竞争力。
4、升级的软件测试功能及工具,为软件质量严格把关。
5、搭配Windows 7,Silverlight4 与 Office,发挥多核并行运算威力,
6、创建美感与效能并重的新一代软件。
7、支持最新C++标准,增强IDE,切实提高程序员开发效率。
参考资料来源:百度百科:编程
参考技术A第一:你少加了头文件。
第二:这个函数需要自己写,你没有定义。
第三:如果你自己写了initgraph函数的话,错误就发生在函数的引用上,你应该在用之前声明他,就算你包括了他的头文件,也必须在用之前声明他。
以下是快速寻找代码的方法:
1.代码编辑器
新的代码编辑器使代码更容易阅读。您可以通过在按住 Ctrl 的同时滚动鼠标滚轮来进行缩放。此外,当您在 Visual C# 或 Visual Basic 中单击某个符号时,该符号的所有实例都将自动突出显示。
2.键入时即开始搜索
新的“定位到”功能对文件、类型和成员提供“键入时即开始搜索”支持。“定位到”使您能够利用 Camel 大小写格式和下划线来缩写搜索文本。例如,可以使用“AOH”来搜索“AddOrderHeader”。
3.调用层次结构
在 Visual C# 和 Visual C++ 中,调用层次结构使您能够从一个成员定位到它的调用方成员以及它的被调用方成员。在浏览面向对象的代码时,这十分有用。
扩展资料:
代码生成
在 Visual Studio 的任何版本中都可以创建和使用文本模板,无需任何其他组件。在引入了预处理文本模板的 Visual Studio 2010 中,从应用程序生成任何类型的文本文件已变得更加容易。还通过与生成系统的更好集成,改进了对代码集成的支持,从而使生成的源代码始终会在对源模型进行任何更改后保持更新。
参考资料:Microsoft Visual Studio-百度百科
参考技术B1、如果是你自己写的函数,最好在主文件前声明一下。就是如void initgraph(...);
2、如果你自己写了initgraph函数的话,错误就发生在函数的引用上,你应该在用之前声明他,就算你包括了他的头文件,也必须在用之前声明他。
3、还有一种方法,就是在你声明initgraph函数的文件里,在他前面加上extern这样就没问题了。
4、initgraph是函数名 ,功能为初始化图形系统。pathtodriver表示存放图形驱动文件的路径。头文件是graphics.h。
扩展资料
VS2010特点:
1、支持Windows Azure,微软云计算架构迈入重要里程碑。
2、助力移动与嵌入式装置开发,三屏一云商机无限。
3、实践当前最热门的 Agile/Scrum 开发方法,强化团队竞争力。
4、升级的软件测试功能及工具,为软件质量严格把关。
5、搭配Windows 7,Silverlight4 与 Office,发挥多核并行运算威力,
6、创建美感与效能并重的新一代软件。
7、支持最新C++标准,增强IDE,切实提高程序员开发效率。
参考技术C一是少加了头文件,二可能是自己写的函数没定义。
1.如果是你自己写的函数,最好在主文件前声明一下。就是如void initgraph(...)。
2.如果你自己写了initgraph函数的话,错误就发生在函数的引用上,你应该在用之前声明他,就算你包括了他的头文件,也必须在用之前声明它。
3.还有一种方法就是在你声明initgraph函数的文件里,在他前面加上extern这样就没问题了。
扩展资料:
Visual Studio是微软公司推出的开发环境,是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。
Visual Studio 2010同时带来了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),并且支持开发面向Windows 7的应用程序。
除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库。Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。
参考资料:百度百科-VS2010
参考技术D 如果是你自己写的函数,最好在主文件前声明一下。就是如void initgraph(...);如果你自己写了initgraph函数的话,错误就发生在函数的引用上,你应该在用之前声明他,就算你包括了他的头文件,也必须在用之前声明他。
还有一种方法
就是在你声明initgraph函数的文件里,在他前面加上extern这样就没问题了。本回答被提问者采纳
以上是关于用VS15编写多文件程序的时候,c语言提示不允许使用不完整的类型的主要内容,如果未能解决你的问题,请参考以下文章