如何防止C中的包含循环?即.你不应该有#include"bh",其中#include的"ch"是#include的"啊".我正在寻找一种方法来防止使用某种C指令发生这种情况.
我本以为这会阻止这种情况发生:
内容啊:
#ifndef __A_H #define __A_H #include "b.h" #endif // __A_H
bh的内容:
#ifndef __B_H #define __B_H #include "c.h" #endif // __B_H
ch的内容:
#ifndef __C_H #define __C_H #include "a.h" #endif // __C_H
但它似乎没有用.
它确实工作正常:文件被重复包含,但#ifdndef/#define/#endif保护的部分不会重复,这会打破循环.
使用编译器生成预处理输出并自行查看.使用GNU CC,您需要在.c [pp]文件中使用"-E"选项,如下所示:
gcc -E $(CFLAGS) -o foo.i foo.cpp