0

で:http ://www.learncpp.com/cpp-tutorial/110-a-first-look-at-the-preprocessor/

ヘッダーガードの下には、次のコードスニペットがあります。

add.h:

#include "mymath.h"
int add(int x, int y);

減算.h:

#include "mymath.h"
int subtract(int x, int y);

main.cpp:

#include "add.h"
#include "subtract.h"

#include "mymath.h"に2回表示されないようにするにはどうすればよいmain.cppですか?

ありがとう。

4

4 に答える 4

5

その例のすぐ下の行はそれを説明しています。ファイルmymath.hは次のようになります。

#ifndef MYMATH_H
#define MYMATH_H

// your declarations here

#endif

すべてのヘッダーファイルは、この基本形式に従う必要があります。これにより、ヘッダーファイルをそれを必要とするすべてのファイル(ヘッダーファイルとソースファイルの両方)にインクルードできますが、実際の宣言は各ソースファイルに最大1回しかインクルードされません。

于 2011-01-22T17:26:32.657 に答える
4

MS VC ++または標準的な方法を使用している場合は、#pragmaを1回使用します

mymath.h内

#ifndef MYMATH_H
#define MYMATH_H

[code here]

#endif // MYMATH_H
于 2011-01-22T17:25:33.127 に答える
2

すべてのヘッダーファイルにヘッダーガードが含まれている場合は、2回インクルードしても問題ありません。2番目以降のすべてのインクルードは、空の行を追加するだけで、コードの重複はありません。mymath.hヘッダーガードもあることを確認してください。

于 2011-01-22T17:26:34.833 に答える
1

mymath.hでも、ヘッダーガードを任意のヘッダーに配置する必要があります。

于 2011-01-22T17:23:27.363 に答える