我一直在测试 C++ 中的内联函数调用。
Thread model: win32
gcc version 4.3.3 (4.3.3-tdm-1 mingw32)
C++ 编程语言中的 Stroustrup 写道:
inline 说明符是对编译器的提示,它应该尝试生成代码 [...] 内联,而不是为函数放置一次代码,然后通过通常的函数调用机制进行调用。
但是,我发现生成的代码根本不是内联的。isquare函数有一个CALL 指令。
为什么会这样?那我该如何使用内联函数呢?
编辑:使用的命令行选项:
**** Build of configuration Debug for project InlineCpp ****
**** Internal Builder is used for build ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\InlineCpp.o ..\src\InlineCpp.cpp
g++ -oInlineCpp.exe src\InlineCpp.o