在阅读Is this proper C declaration? If so, why does it not work?时我正在考虑
#include <stdio.h>
int main(void) {
int bool = 0;
return bool == 0;
}
这个程序是否严格符合?换句话说,stdio.h
是允许包含stdbool.h
还是禁止这样做?这是由规范指定的吗?
答案 0 :(得分:5)
C标准标头不能包含其他标头。这与C ++不同,它是明确允许的。
C99标准,第7.1.3节
每个标头声明或定义其相关子条款中列出的所有标识符[...] 没有保留其他标识符。
答案 1 :(得分:3)
我不确定它是否具有权威性,但这是Plauger所说的(授予它为c89)。
标准C库提供十五个标准头文件。标题 有几个属性
他们是相互独立的。没有标准标题要求 首先要包含另一个标准标题,以使其正常工作。 任何标准标题都不包含其他标准标题。
我在c99或c89中找不到任何提及。
修改强>
我可以看到inttypes.h
包含stdint.h
7.8-1
标题
<inttypes.h>
包含标题<stdint.h>
并对其进行扩展 以及托管实施提供的额外设施。