ですから、これはしばらくの間私を悩ませてきた質問であり、決定的な答えを得ることができません. 私の理解では、優れたコンパイラは一般に、関数をインライン化することが安全で有利であることを認識し、最適化がオンになっている場合、インライン関数として明示的に識別されているすべての関数をインライン化します。プログラマによるかどうか。また、コンパイラは、関数をインライン化するのが安全でない/適切でない場合を認識し、そのような場合に関数をインライン化するプログラマの要求を単純に無視します。
したがって、関数をインラインとして明示的に記述することの利点は何ですか? 最適化がオンになっている限り、コンパイラは、インライン化するのが適切であると判断したすべての関数、およびそれらの関数のみをインライン化します。
ネストされた h ファイルによる複数の定義に対するインライン保護に関するいくつかの議論を見つけましたが、ヘッダー ソース コードを #ifdefine することはより良い方法であり、キーワード inline void の使用を再びレンダリングしますか?