2

我正在使用 VC2010,试图为 Linux 编译一些用 C99 编写的库。以下行给出错误 C2275:'uint8_t':非法使用此类型作为表达式

uint8_t * G = (uint8_t*)calloc(N ,sizeof(uint8_t));

subhint: stdint.h(21) : 见 'uint8_t' 的声明,那一行是:

typedef unsigned char uint8_t;

然后是累积的问题:错误C2065:'G':未声明的标识符等。这里有什么非法的?

4

1 回答 1

5

已经回答了一个类似的问题: 错误 C2275:非法使用此类型作为表达式

答: 当您将源文件命名为 *.c 时,MSVC 假定它正在编译 C,即 C89。所有函数局部变量都需要在函数的开头声明。

解决方法包括: - 在函数开头声明/初始化所有局部变量 - 将源文件重命名为 *.cpp 或等效文件并编译为 C++。

于 2012-06-08T15:36:33.260 回答