我对标准C11的这一段中的一句话有疑问:
5.1.1.1程序结构
一个C程序不需要同时翻译。程序的文本保存在本国际标准中称为源files (或预处理files)的单元中。源file连同通过预处理指令#fi包括的所有标头和源files被称为预处理转换单元。
起初,它说程序的文本保存在一个叫做源文件的单元中。在此之后,源文件连同头文件和源文件被称为预处理翻译单元。
因此,源文件是与头文件有关的不同实体,还是包含两者的源文件?
发布于 2014-11-17 11:45:45
源文件是包含源代码的任何文本文件(或其他特定于实现的实体,根据Basile的回答)。这特别包括.c和.h文件。它还可能包括带有其他后缀的文件,如预处理程序或生成的代码文件。
当您将某个源文件实际传递给编译器(通常只有.c文件)时,该文件连同它#include的所有东西(传递闭包)构成一个翻译单元。
因此:每个翻译单元都是由源文件构建的。
但是:并不是每个源文件都是翻译单元的起点。
发布于 2014-11-17 11:42:06
源文件(或预处理.c le)一词反映给.h源文件和.h头。C标准并没有将它们区分开来。
在K. N. King的"C编程:现代方法“一书(第15.2节)中对此作了解释。
https://stackoverflow.com/questions/26971831
复制相似问题