0

Cヘッダーのインクルージョンガードの有無にかかわらずコンパイルを試み、複数のcファイルに同じヘッダーが含まれていることを確認しました. それは再宣言につながり、許可されます。それは何のために?

4

1 に答える 1

3

循環包含を防止します。

/** file A.h */
#include "B.h"
/** file B.h */
#include "A.h"

「Ah」または「Bh」のどちらかを含めるとどうなりますか? プリプロセッサは他のファイルをインクルードしようとします。これには他のファイルが含まれます。他のファイルには他のファイルが含まれます...</p>

警備員は、ファイルを何度も含めないようにします。

于 2013-11-10T11:22:37.243 に答える