我包括需要某些 pro-processor#define
存在的头文件,但是我不希望这污染我的其余代码,例如:
// FOO may or may not already be defined here
#define FOO
#include "Bar.h"
#undef FOO
// FOO should be defined or not, as per the starting state
我的思路是这样的:
#ifdef FOO
#define FOO_DEFINED
#endif
#define FOO
#include "Bar.h"
#ifndef FOO_DEFINED
#undef FOO
#else
#undef FOO_DEFINED
#endif
问题:
上述工作是否可以将所有宏定义(或缺少)恢复到它们之前的状态?
是否有更简单的解决方案?
我是否已经定义了 FOO 是否重要
#define
?我应该添加另一个#ifndef
来防止这种情况吗?