【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/p/10532292.html