在:http://www.learncpp.com/cpp-tutorial/110-a-first-look-at-the-preprocessor/
在Header guards下,有一些代码段:
add.h:
#include "mymath.h"
int add(int x, int y);
subtract.h:
#include "mymath.h"
int subtract(int x, int y);
main.cpp中:
#include "add.h"
#include "subtract.h"
如何避免#include "mymath.h"
在main.cpp
中出现两次?
感谢。
答案 0 :(得分:5)
该示例正下方的行解释了它。您的mymath.h
文件应如下所示:
#ifndef MYMATH_H
#define MYMATH_H
// your declarations here
#endif
每个头文件都应遵循此基本格式。这允许任何需要它的文件(头文件和源文件)都包含头文件,但实际的声明只会在每个源文件中包含一次。
答案 1 :(得分:4)
在mymath.h中
#ifndef MYMATH_H
#define MYMATH_H
[code here]
#endif // MYMATH_H
答案 2 :(得分:2)
如果所有标题文件都有标题保护,则可以包括两次。第二个和所有后续包含只会添加空行,并且不会有任何代码重复。只需确保mymath.h
也有标题保护。
答案 3 :(得分:1)
您应该将标题保护放在任何标题中,也可以放在mymath.h中。