我有一个关于使用#undef
重新定义宏的问题。
我有一个global.h
包含许多#define-d 宏的文件。在使用这些宏的代码中,我发现宏所持有的值不够通用。我想重新定义宏以使它们更通用。为此,我编写了以下代码片段:
std::cout << endl << "Enter pitch threshold:" << endl;
std::cin >> pitchT;
#ifdef PitchThreshold
#undef PitchThreshold
#define PitchThreshold pitchT
#endif
我的问题是:
以这种方式使用#undef 是否确保在所有源文件中重新定义宏,或者它是编写上述代码行的函数的本地函数?#undef 和 #define 运算符的范围是什么?
我可以做什么(除了更改文件中的宏#define-d 本身)以确保宏定义在所有源文件中都发生更改?
谢谢,
斯里拉姆