是否可以检查在预处理器期间(在头文件中)是否定义了结构?

时间:2012-08-28 09:31:18

标签: c

我想检查我包含的头文件中是否定义了某个结构,如果不是,则定义它。标题可能或可能不包含在源文件中,并且(显然)在编译时已知。

基本上我想要一些类似于头文件中使用的ifndef防护的东西,我知道我可以通过检查它的防护来检查是否包含定义struct的头文件,但是如果我可以检查struct本身,我会徘徊。

2 个答案:

答案 0 :(得分:7)

没有。预处理器不解析C语言本身,它对所声明的类型一无所知。

答案 1 :(得分:3)

我已检入ANSI C规范

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf

这里 预处理指令只讨论标识符。

因此无法检查此结构是否已定义。