使用条件编译指令
例如:
a.h:
int fun();
b.h:
#include "a.h"
c.h:
#include "a.h"
main.c:
#include "b.h"
#include "c.h"
......
//编译时就会出现重复包含/定义错误
可以加入条件编译指令#ifndef #endif
a.h:
#ifndef A_FUN
#define A_FUN
int fun();
#endif
b.h:
#include "a.h"
c.h:
#include "a.h"
main.c:
#include "b.h"
#include "c.h"
......
//编译时就会出现重复包含/定义错误
给出几个建议:
可以将要包含的头文件统一include到 .c/.cpp文件中,这样就会单独解析,不会发生错误。
或者直接include在头文件中,然后.c/.cpp文件里include自己的头文件,但头文件的函数要加上条件编译指令。例如:
b.h:
#include "a.h"
#include "c.h"
b.c:
#include "b.h"
条件编译避免重复包含
本文介绍了如何使用条件编译指令解决C/C++项目中头文件重复包含的问题,并提供了具体的代码示例。通过条件编译预处理指令,可以有效防止多次包含同一头文件导致的编译错误。
1万+





