インライン コンパイラはマニュアル インラインよりも優れていると友人から言われましたが、その理由を説明することはできませんでした。手動で実行できる場合、インライン キーワードを使用する利点は何ですか (同じコードを何度も書く場合を除く)。
2 に答える
1
インライン関数は、関数が頻繁に呼び出され、キャッシュされたメモリに収まるほど小さい場合に役立ちます...コンパイラがそれを処理する場合、これらのパラメーターの使用を決定できますが、ターゲットハードウェアに関する知識があれば、実行することもできます手動で..
于 2012-04-08T15:45:05.090 に答える
1
Inline
コンパイラによって制御されるコピー/貼り付けのように機能しますが、これはプリプロセッサ マクロとはまったく異なります。マクロは強制的にインライン化され、すべての名前空間とコードが汚染され、簡単にデバッグできず、コンパイラはそれを非効率的であると判断したでしょう。
としてマークすることによりinline
、関数定義をヘッダー ファイルに入れることができます (つまり、リンカーが文句を言うことなく、複数のコンパイル ユニットに含めることができます)。
何かをマークinline
しても、それがインラインになるという保証はありません。これは、コンパイラへの単なる提案です。仮想関数がある場合や、再帰が関係している場合など、不可能な場合があります。また、コンパイラがそれを使用しないことを選択する場合もあります。
于 2012-04-08T15:53:10.647 に答える