C 确定字节和向量是否为typedef';D

C 确定字节和向量是否为typedef';D,c,byte,c-preprocessor,c11,preprocessor-directive,C,Byte,C Preprocessor,C11,Preprocessor Directive,C11有一些东西作为规范的一部分,比如字节和向量 有没有办法通过#ifdef确定那些已经被定义为支持尽可能多的编译器而没有警告的编译器?您误解了错误消息。这些类型不是由C11定义的,但它们似乎已经在其他地方的include文件中定义了。消息所指的是,由于C11typedefs可以重新迭代,如果它们引用相同的类型。这与变量或函数声明或#define的行为相同。所有这些都可能出现多次,只要它们是一致的 要拥有该功能,您应该使用选项-std=c11或-std=gnu11进行编译。这会使信息消失 在您的

C11有一些东西作为规范的一部分,比如字节和向量


有没有办法通过
#ifdef
确定那些已经被定义为支持尽可能多的编译器而没有警告的编译器?

您误解了错误消息。这些类型不是由C11定义的,但它们似乎已经在其他地方的include文件中定义了。消息所指的是,由于C11
typedef
s可以重新迭代,如果它们引用相同的类型。这与变量或函数声明或
#define
的行为相同。所有这些都可能出现多次,只要它们是一致的

要拥有该功能,您应该使用选项
-std=c11
-std=gnu11
进行编译。这会使信息消失


在您的情况下,该消息可能表明您的include逻辑中存在一些错误,因此最好弄清楚这一点。

您对此有何参考:C11在规范中有一些内容,如byte和vec3\t?Clang向我抛出了那些编译器警告(警告:typedef‘byte’的重新定义是C11特性[-Wtypedef重新定义])