假设我有a.h
其中包括以下内容:预处理器的#ifndef
<stdbool.h>
<stddef.h>
<stdin.h>
假设我也有b.h
其中还包括<stdbool.h>
。如果a.h
在其中有#ifndef
预处理器定义语句,并且b.h
没有。 a.h
只会包含b.h
中未包含的内容吗?因此,当b.h
包括a.h
时,a.h
将包括stddef.h
和stein.h
而不是重新包含stdbool.h
还是那些预处理器定义函数仅用于查看整个类是否被重新定义,而不是其中的特定函数?
编辑:
此外,假定b.h
包括另一头文件包括stdbool.h
- 即使b.h
具有stdbool.h
既从该类和a.h
。会导致错误吗?
定义的完整标题一旦你从多个文件中使用相同的头文件,无论如何都会导致链接错误,所以不要这样做。 – 2012-03-13 19:16:46