使用條件編譯指令
例如:
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"