#pragma onceの使用
701 ワード
以下の内容を抜粋するhttps://zh.wikipedia.org/wiki/Pragma_once
CおよびC++プログラミング言語では、#pragma onceは非標準で広くサポートされているプリプロセッシングシンボルであり、存在するファイルは1つの個別のコンパイルに1回しか含まれません.このように、
一方、GCC、clangなどの一部のコンパイラには、include防犯を識別し、効率的に管理するための特別なコードも含まれています.したがって、
さらに、コンパイラ自身が管理
CおよびC++プログラミング言語では、#pragma onceは非標準で広くサポートされているプリプロセッシングシンボルであり、存在するファイルは1つの個別のコンパイルに1回しか含まれません.このように、
#pragma once
はincludeのような防犯の目的を提供するが、コードが少なく、名前の衝突を回避することができる.#pragma once
をincludeの代わりに使用すると、これはハイエンドのメカニズムであるため、コンパイル速度が速くなります.コンパイラは、ヘッダファイルで#ifndef
および#endif
を判断する必要がなく、ファイル名またはinodeを自動的に比較します.一方、GCC、clangなどの一部のコンパイラには、include防犯を識別し、効率的に管理するための特別なコードも含まれています.したがって、
#pragma once
を使用しても明らかな加速は得られない.さらに、コンパイラ自身が管理
#pragma once
を負担しなければならないため、include防犯文書例のH_GRANDFATHER
のような新しい命令名を定義する必要はない.これにより、名前の衝突のリスクが排除されます.つまり、少なくとも最初にヘッダファイルを含めても間違いはありません.