假设我有两个标题:a.h
和b.h
。
我想在我的项目中做的是只允许其中一个。
如果a.h
和b.h
都包含在源文件中,则预计会发生编译错误。
我应该在标题中添加什么来实现这一目标?
#include<a.h> // Ok
#include<b.h> // OK
#include<a.h>
#include<b.h> // compile error
如果
a.h
和b.h
都包含在源文件中,则预计会发生编译错误。 我应该在标题中添加什么来实现这一目标?
您可以使用预处理器参考您的标题保护来执行类似的操作:
a.h
#ifndef A_H
#define A_H
#ifdef B_H
#error "You cannot use a.h in combination with b.h"
#endif
// ...
#endif
b.h
#ifndef B_H
#define B_H
#ifdef A_H
#error "You cannot use b.h in combination with a.h"
#endif
// ...
#endif