在C中,translation unit(翻译单元)也可称为compilation unit(编译单元),translation unit是C预处理后的输出,即一个源文件经过预处理后。经过translation unit后产生一个目标文件(比如.c通过编译产生.o文件)。
预处理包括:
1.扩张的源文件以递归方式用指令中申明的字面文件取代所有#include指令(通常是头文件,但可能还有其他源文件)这一步骤的结果是一个预处理翻译单元。
2.包括#define指令和#ifdef宏扩展,这将预处理翻译单元为翻译单位。从翻译单位,编译器产生一个目标文件,可进一步加工和链接(可能与其他目标文件)来形成一个可执行程序。
翻译单位的范围是文件范围。在C术语中,它是一个内部连接(C中两种连接格式外部链接和内部连接)。
在函数块外部名字声明(函数和变量)若只能在一个已知的translation unit是可见的,称为内部链接。他们对于linker(连接器)是不可见。若声明的函数或变量对于其他的目标文件是看见的,则称为具有外部连接,对于linker是可见的。
阅读(5354) | 评论(0) | 转发(0) |