1. ホーム
  2. c++

[解決済み] c++のインライン関数?

2023-08-25 09:51:49

質問

なぜこのようなことをしなければならないのでしょうか。

inline double square (double x) { return x*x;}

の代わりに

double square (double x) { return x*x;}

違いはあるのでしょうか?

どのように解決するのですか?

前者( inline を使用)により、その関数をヘッダーファイル内に置くことができ、そこで複数のソースファイルにインクルードすることができます。使用方法 inline の識別子を ファイルスコープ と宣言したのと同じように static . を使用せずに inline を使用しない場合、リンカーから複数シンボル定義エラーが発生します。

もちろん、これは関数がコンパイルされるべきというコンパイラへのヒントに加えて インライン にコンパイルされるべきであるというコンパイラへのヒントに加え、(関数呼び出しのオーバーヘッドを避けるため)です。コンパイラが inline のヒントに従う必要はありません。