我正在使用VC2010,尝试编译一些用C99 for Linux编写的库。以下行给出了错误C2275:'uint8_t':非法使用此类型作为表达式
uint8_t * G = (uint8_t*)calloc(N ,sizeof(uint8_t));
子提示:stdint.h(21):查看'uint8_t'的声明,该行是:
typedef unsigned char uint8_t;
然后出现累积的问题:错误C2065:'G':未声明的标识符等什么是非法的?
答案 0 :(得分:5)
类似的问题已经回答: error C2275 : illegal use of this type as an expression
<强>答案:强> 当您命名源文件* .c时,MSVC假定它正在编译C,这意味着C89。所有函数局部变量都需要在函数的开头声明。
变通方法包括: - 在您的开头声明/初始化所有局部变量 功能 - 将源文件重命名为* .cpp或等效编译 作为C ++。