test.cpp
#include <iostream>
void f()
{
std::cout<<"non-inline"<<std::endl;
}
main.cpp
#include <iostream>
using namespace std;
inline void f()
{
cout<<"inline"<<endl;
}
int main()
{
f();
return 0;
}
デバッグ モードでは、出力は非インラインです。コマンド:g++ [-g] -o メイン main.cpp test.cpp
リリース モードでは、出力は次のとおりです。インライン。コマンド:g++ -O -o メイン main.cpp test.cpp
なんで?
Linux G++ 4.7.3
C99 では、インライン定義は関数の外部定義を提供しないため、別のソース ファイルで別の関数を定義することにより、識別子の外部定義を提供できます。
インライン定義は、C++ の関数の外部定義を提供しますか??
どうも!!