8

私はプロジェクトを作成していますが、問題が発生して唖然とします。

もう 1 つの特別なライブラリー definition.h を含む 3 つの libraries.h がありますが、私のメイン モジュールでは、すべてのライブラリーを 1 回だけインクルードしたい、つまり、ライブラリーdefinitions.hが既にインクルードされているかどうかをテストして、インクルードしたいかどうかは結果次第。

何かのようなもの

If !(#include"definitions.h")
(#include"definitions.h")
4

3 に答える 3

17

インクルードガードを探しています。

例、

#ifndef DEFINITIONS_H 
#define DEFINITIONS_H 
...
...

#endif
于 2013-06-08T15:32:15.987 に答える
7
#ifndef DEFINITIONS_H
#define DEFINITIONS_H
//lots of code
//
//
//
//
#endif

非標準もあります。Is #pragma once a safe include guard?#pragma onceを参照してください。

于 2013-06-08T15:32:41.803 に答える
2

ヘッダー構文が正しい場合、これは問題になりません。実際、これがあなたが書く理由です

#ifndef _DEFINITIONS_H
#define _DEFINITIONS_H
[header content]
#endif

したがって、ヘッダーが C の規則に準拠していれば問題ありません。

于 2013-06-08T15:35:02.023 に答える