本文主要是介绍【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!
这篇关于【compiler】error C2275:xxxx 将此类型用作表达式非法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!