编译出现问题:
error C2628: “uint8”后面接“char”是非法的(是否忘记了“;”?)
代码很简单:
typedef uint8 byte;
后来发现另一个头文件里,这样写的:
#define byte char
怎么解决呢?可以在typedef前面#undef byte。
另外一个方法是最后调用第二个头文件,能编译过,但代码里就byte就是char了。
总之,尽量不要用宏定义!
本文讨论了在C++中由于byte类型的宏定义与typedef定义冲突导致的编译错误,并提供了两种解决方案:一是使用#undef取消宏定义;二是调整头文件的加载顺序。强调避免使用宏定义以减少潜在的类型冲突。
编译出现问题:
error C2628: “uint8”后面接“char”是非法的(是否忘记了“;”?)
代码很简单:
typedef uint8 byte;
后来发现另一个头文件里,这样写的:
#define byte char
怎么解决呢?可以在typedef前面#undef byte。
另外一个方法是最后调用第二个头文件,能编译过,但代码里就byte就是char了。
总之,尽量不要用宏定义!
1214
9735

被折叠的 条评论
为什么被折叠?