C11有一些东西作为规范的一部分,如byte和vec3_t。
有没有办法通过#ifdef
确定这些是否已被定义为尽可能多的编译器而没有警告?
答案 0 :(得分:1)
您误解了错误消息。这些类型不是由C11定义的,但它们似乎已经在其他地方的包含文件中定义。消息引用的是,因为C11 typedef
可以重新迭代,如果它们引用相同的类型。这样做具有与变量或函数声明或#define
相同的行为。所有这些都可以出现几次,只要它们是一致的。
要使用该功能,您应该使用选项-std=c11
或-std=gnu11
进行编译。这应该会使消息消失。
在您的情况下,该消息可能表明您的包含逻辑中存在一些错误,因此最好能够直接理解。