C语言结构体一个问题?

为什么我这个结构体型的数组申请总是有问题,我感觉我好像没什么错呀

将C代码在VC++中编译,经常会出现error C2275错误,结果是变量的定义位置不对,应该在函数块的最前面。这是一个编程习惯的问题。在移植c++代码到c的时候,经常会出现一个奇怪的错误:“error C2275: “xxxxx”: 将此类型用作表达式非法”这个错误是由于c的编译器要求将变量的申明放在一个函数块的头部,而c++没有这样的要求造成的。解决的办法就是把变量的声明全部放在变量的生存块的开始。
不知道你是属于那种,有问题的时候不一定是代码问题,还有可能是平台问题.不清楚的时候可以百度下错误代码,就清楚了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-18
用Virtual C++ 6.0测试,发现上述编译错误源于“PERSON per[100];”这句放置位置问题。
C语言旧标准规定,变量定义只允许放置在第一个可执行语句之前。
因为Virtual C++ 6.0太老,所以它遵循上述规定。现代编译器,比如新版Virtual C++或gcc等,不做此限制。同时,C++没有这个限制,可以“随处使用,随处定义”。
因此,上述程序修改:将“PERSON per[100];”这句放到printf("请输入员工数:\n")之前,或者将13.c的后缀改为13.cpp。
第2个回答  2020-02-18
person 改成小写试试
第3个回答  2020-02-18
将数组per的定义提前到main函数中printf调用前本回答被网友采纳
相似回答