7

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

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

4

2 回答 2

9

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

于 2012-08-28T09:44:01.133 回答
6

我已经检查了 ANSI C 规范

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

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

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

于 2012-08-28T10:08:02.027 回答