我知道在某些情况下,编译器会通过调用堆栈将显式定义的内联函数转换为常规函数。我怎么知道是这种情况?(对于我的C ++代码)
顺便说一句,在什么情况下编译器会将内联函数转换为常规函数?
您在可执行文件上运行nm
或运行otool
该文件,并且如果看到该函数的名称,则说明该函数已被定义。这并不意味着它实际上根本没有内联(编译器可能内联一个函数,但也可能生成一个独立的函数体,因为例如有人为其分配了一个函数指针)。为此,您需要检查实际生成的汇编代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句