【compiler】error C2275:"xxxx" 将此类型用作表达式非法
Date: 2018.11.9
1、参考
https://blog.csdn.net/lqk1985/article/details/7389159
2、问题描述
今天在移植和调试一个程序时,遇到了下面这样一个问题:
error C2275:“timeval” 将此类型用作表达式非法
并且后面紧跟着这个这个结构体的中的变量未定义的错误。通过检查,感觉一脸懵逼,结构体的定义和使用都没有问题。并且这个程序在linux下gcc编译是没有问题的,但是在windows平台下vs中编译报错。
3、分析和解决方案
将C代码在VC++中编译,经常会出现error C2275错误,结果是变量的定义位置不对,应该在函数块的最前面。这是一个编程习惯的问题。
在移植c++代码到c的时候,经常会出现一个奇怪的错误:“error C2275: “xxxxx”: 将此类型用作表达式非法”
这个错误是由于c的编译器要求将变量的申明放在一个函数块的头部,而c++没有这样的要求造成的。
解决的办法就是把变量的声明全部放在变量的生存块的开始。
总结:不同的编译器对变量和函数的使用要求不同。常用编译器比如gcc编译器、vc编译器cl.exe、Intel编译器icc。
THE END!
本文为博主原创文章,未经博主允许不得转载。若允许转载,请注明来源https://www.cnblogs.com/SoaringLee/,否则保留追究法律责任的权利!
另外,本人提供付费咨询服务并长期承接各类毕设以及外包项目。联系QQ:2963033731。加Q备注:CNBLOG外包
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步