我了解什么是标头守卫,但我从未见过它在更大的项目中是如何使用的。我目前正在编写一个 OpenGL 抽象层,我主要需要包含相同的文件。
所以我的第一个天真的方法是做这样的事情:
#ifndef GUARD_H
#define GUARD_H
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <GL/glfw3.h>
#include <glload/gl_core.h>
#include <glload/gll.h>
#endif // GUARD_H
所以我只能这样做#include "guard.h"
。但我意识到这不是一个很好的解决方案,因为如果我想添加一个简单的包含怎么办?
是的,我可能可以将我所有的包含都写在这个文件中,但我也不确定这是否是个好主意。
你会建议我如何构建我的头卫?你能推荐我任何资源吗?
更新1:小例子
test.h
#ifndef TEST_H
#define TEST_H
#include <glm/glm.hpp>
class test{
};
#endif
test1.h
#ifndef TEST1_H
#define TEST1_H
#include <glm/glm.hpp>
class test1{
};
#endif
现在我在我的测试课中加入了 glm。但是如果我想做这样的事情怎么办。
#include "test.h"
#include "test1.h"
int main(){
//...
}
我不是 #include <glm/glm.hpp>
主要包括2次吗?