Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
所以我的问题是,为什么当我包含一个包含“全局变量”的头文件时:
我的其他头文件无法识别标识为“ DRAWING_OBJECTS_COUNT” ?:
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
所以我的问题是,为什么当我包含一个包含“全局变量”的头文件时:
#define DRAWING_OBJECTS_COUNT 2
我的其他头文件无法识别标识为“ DRAWING_OBJECTS_COUNT” ?:
DoubleTapResetUnit * unitList[DRAWING_OBJECTS_COUNT];
最佳答案
您有一个标头,将其称为HeaderA,它定义了DRAWING_OBJECTS_COUNT
,还有另一个标头,将其称为HeaderB,它使用了DRAWING_OBJECTS_COUNT
,对吗?为了使用HeaderA的声明,HeaderB必须通过#include
语句(直接或间接)包括HeaderA。如果您这样做了,但是HeaderB仍然无法理解DRAWING_OBJECTS_COUNT
是什么,那么我可以想到两种可能性:DRAWING_OBJECTS_COUNT
被定义在#undef
之后但HeaderB尝试使用它的某些代码的DRAWING_OBJECTS_COUNT
修改。
您在HeaderA和HeaderB之间有一个循环引用,其中HeaderA包括HeaderB,反之亦然,但是在HeaderA有机会定义DRAWING_OBJECTS_COUNT
之前,HeaderB已得到处理。避免在头文件中使用循环引用。
09-26 08:16