【C++编译】一次轻量级探讨

    今天和大佬进行了一次讨论,被问起编译有几个环节的时候;被问起内敛函数在编译阶段是怎样实现的时候,一脸懵逼。

现总结如下:1.编译阶段分为3个阶段:预编译(CPP)——》编译——》链接.

2.预编译阶段是处理宏定义 将宏定义展开处理。

3.编译阶段会按CPP为单位生成单个.o文件,会根据.h去查找声明。多个CPP组合编译成一个lib 。

4链接阶段将多个lib进行链接,并且查找定义是否定义完全。

现在,提出问题:1.未识别某个函数/某个类/某个成员出现在哪个阶段:编译阶段。

2.未定义某个函数/某个成员,出现在哪个阶段:链接阶段。

3.内敛函数在编译阶段怎样实现:内敛函数是在编译阶段铺开成一段代码,链接的时候不会再去查找函数体。并且编译器如果认定函数太复杂,不会进行内敛。

 

后续查找答案,如果有问题,再更正。

posted @ 2022-02-17 17:25  星星客  阅读(52)  评论(0)    收藏  举报