【C++编译】一次轻量级探讨
今天和大佬进行了一次讨论,被问起编译有几个环节的时候;被问起内敛函数在编译阶段是怎样实现的时候,一脸懵逼。
现总结如下:1.编译阶段分为3个阶段:预编译(CPP)——》编译——》链接.
2.预编译阶段是处理宏定义 将宏定义展开处理。
3.编译阶段会按CPP为单位生成单个.o文件,会根据.h去查找声明。多个CPP组合编译成一个lib 。
4链接阶段将多个lib进行链接,并且查找定义是否定义完全。
现在,提出问题:1.未识别某个函数/某个类/某个成员出现在哪个阶段:编译阶段。
2.未定义某个函数/某个成员,出现在哪个阶段:链接阶段。
3.内敛函数在编译阶段怎样实现:内敛函数是在编译阶段铺开成一段代码,链接的时候不会再去查找函数体。并且编译器如果认定函数太复杂,不会进行内敛。
后续查找答案,如果有问题,再更正。

浙公网安备 33010602011771号