假设我有两个标头:a.h
和b.h
。
我要在项目中做的是只允许其中之一。
如果a.h
和b.h
都包含在源文件中,则可能会发生编译错误。
我应该在标题中添加些什么来实现此目的?
#include<a.h> // Ok
#include<b.h> // OK
#include<a.h>
#include<b.h> // compile error
答案 0 :(得分:7)
如果源文件中同时包含
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