#pragma once と include ガードの違いは? [重複] 質問する

#pragma once と include ガードの違いは? [重複] 質問する

私は、Windows でのみ実行され、Visual Studio でコンパイルされることがわかっているコードベースに取り組んでいます (Excel と緊密に統合されているため、どこにも行きません)。従来のインクルード ガードを使用するか、#pragma onceコードに使用するか迷っています。コンパイラに処理させると、コンパイルが高速になり、コピー アンド ペースト時にエラーが発生しにくくなると思います#pragma once。また、見た目も少し良くなります。;)

注: コンパイル時間を短縮するには、冗長なインクルードガードしかし、これにより、インクルードされるファイルとインクルードするファイルの間に密接な結合が追加されます。ガードはファイル名に基づいている必要があり、インクルード名を変更する必要がある場合にのみ変更されるため、通常は問題ありません。

ベストアンサー1

コンパイル時間に大きな違いが出るとは思いませんが、#pragma onceコンパイラ間で非常によくサポートされていますが、実際には標準の一部ではありません。正確な意図を理解するのがより簡単なので、プリプロセッサは少し速くなる可能性があります。

#pragma once間違いが起きにくくなり、入力するコードも少なくなります。

コンパイル時間をさらに短縮するには、可能な場合は .h ファイルにインクルードするのではなく、前方宣言するだけです。

私は を使用することを好みます#pragma once

これを見て両方を使用する可能性についてのWikipediaの記事

おすすめ記事