什么是编译单元

编译单元,顾名思义,就是一次编译的单位,C/C++语言中编译器都是以被做了include递归展开的cpp文件为编译单位,这也就是最小的编译单位了。 换句话说,你可以让编译器编译一个cpp源文件,而编译器会自动处理它所包含的内容,最终把它所包含的内容以及它自身的内容编译成一个目标文件。 你无法让编译器只编译某个cpp文件中的某一个具体的变量或函数。 之所以书上常说“编译单元”,而不说“cpp文件”,就是因为前者表意更准确。


经过预处理之后的文件(这个是内存中的临时文件)
#include在预处理时被展开,宏也一样
一个经过展开后的.cpp文件就是一个编译单元
一个xx.h(经过预处理) + 一个xx.cpp = 一个编译单元
一个编译单元(经过编译)= xx.obj
整个程序的多个.obj加起来(经过链接) = .exe(可执行文件)

 

意思是一个编译单元就是一个积木块(就是一个.obj文件),然后连接程序再把这些积木堆起来!

posted @ 2022-04-20 12:06  zzfx  阅读(1018)  评论(0编辑  收藏  举报