我想检查我包含的头文件中是否定义了某个结构,如果不是,则定义它。标题可能或可能不包含在源文件中,并且(显然)在编译时已知。
基本上我想要一些类似于头文件中使用的ifndef
防护的东西,我知道我可以通过检查它的防护来检查是否包含定义struct
的头文件,但是如果我可以检查struct
本身,我会徘徊。
答案 0 :(得分:7)
没有。预处理器不解析C语言本身,它对所声明的类型一无所知。
答案 1 :(得分:3)
我已检入ANSI C规范
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
这里 预处理指令只讨论标识符。
因此无法检查此结构是否已定义。