11. C++ inline函数消除重定义

inline

由于inline函数,C++中调用一个函数并不意味着生成的目标代码里也一定会做一次真正的函数调用。编译器可以判断一个函数是否需要inline,因此inline关键字在源文件中往往不需要。当然,**在头文件中还是需要,为了防止链接器抱怨重定义。**如果编译器无法内联展开,每个编译单元都会生成一份inline函数的目标代码,然后链接器从多份代码中任选一份保留,其余则丢弃,如果编译器能够展开为内联函数,那就不必单独生成目标代码(除非使用函数指针指向它)。

猜你喜欢

转载自blog.csdn.net/weixin_46645965/article/details/135377869