インライン
関数は、複数の翻訳単位(cppファイル+インクルード)で定義することができ、関数をインライン化するためのヒントです。これは通常、ヘッダーに置かれ、コンパイル時間は長くなりますが、より速いコードに導くことができます。 また、多くのコンパイル単位から関数を使用することができます。
//cube.h
inline double cube(double side)
{
return side * side * side;
}
//cube.cpp
int main( )
{
cube(5);
}
それを定期的に定義するのが通常の方法です(通常はcppファイルで定義され、リンクされています)。他のコンパイル単位からは簡単には使用できません。
//cube.cpp
double cube(double side)
{
return side * side * side;
}
int main( )
{
cube(5);
}
プロトタイプを使うと、たとえまだ存在しないとしても、リンク時に関数が存在することをコンパイラに伝えることができます。これにより、メインがまだ存在していなくても、関数を呼び出すことができます。一般に、プロトタイプはヘッダーにあります。したがって、他のコンパイル単位は、それ自体を定義することなく関数を呼び出すことができます。これはコンパイル時間が最も速く、この機能は他のコンパイル単位から簡単に使用できます。
//cube.h
double cube(double);
//cube.cpp
int main( )
{
cube(5);
}
double cube(double side)
{
return side * side * side;
}