测试.cpp
#include <iostream>
void f()
{
std::cout<<"non-inline"<<std::endl;
}
主文件
#include <iostream>
using namespace std;
inline void f()
{
cout<<"inline"<<endl;
}
int main()
{
f();
return 0;
}
在调试模式下,输出为:非内联。命令:g++ [-g] -o main main.cpp test.cpp
在发布模式下,输出为:inline。命令:g++ -O -o main main.cpp test.cpp
为什么?
Linux G++ 4.7.3
在 C99 中,内联定义不为函数提供外部定义,因此我们可以通过在其他源文件中定义另一个函数来提供标识符的外部定义。
内联定义是否为 C++ 中的函数提供外部定义?
谢谢!!