2

Microsoft の Web サイトinlineでC++ キーワードの使用法と利点/落とし穴について調査したところ、すべて理解できました。

私の質問は次のとおりです。コンパイラが関数を評価して、関数をインライン化するとコードがより効率的になり、inlineキーワードがコンパイラへの提案にすぎない場合、なぜキーワードを気にする必要があるのでしょうか?

編集:の代わりに を使用することについて、多くの人がうめき声を上げています。これは Microsoft 固有のものであることを指摘しておきます。間違っているわけではなく、必ずしも慣れ親しんでいるとは限りません。__inlineinline__inline(サイトのリンクも直しました)

inlineEDIT2: Microsoft 固有のキーワードではなく、キーワード (C++ 全体で使用される)を示すように質問を再フォーマットしました__inline

4

3 に答える 3

8

まず、そうではありません__inlineinline

inline第二に、One Definition Rule 内での効果は、紛れもなく重要です。関数を複数回定義し、コンパイラーに処理させることができます。

第 3 に、実際の iniling に関しては、これはコンパイラだけでなく、後でコードを読む可能性のある人に対しても、その関数についての意見を表明する方法です。多くの場合、いわば息抜きの方法です。基本的に、これはあなたが他の人や自分自身に伝える方法です:あなたの愚かな全社的なコーディング標準がなければ、私はそれをマクロにしていただろう」. その点で、それは一種の形式化されたコメントです。

第 4 に、キーワードの実装固有のスペルを使用したことを確認すると、一部の実装では代替キーワードが提供されていることに注意してください。これにより、関数をインライン化したいというあなたの欲求をより... えーと説得力のあるものにすることができます。 . MS コンパイラでは、__forceinline.

于 2013-06-26T16:49:01.603 に答える