【发布时间】:2012-03-05 16:19:18
【问题描述】:
我目前正在开发一个用 MFC C++ 编写的已开发项目,并且面临一个已存在的宏具有以下定义的问题:
#define HEIGHT_TESTS 13
我正在尝试从代码中更改值,但我认为由于它是经过预处理的定义,我无法做到这一点。有没有一种方法可以解决这个问题,而无需整体更改原始宏(因为它可能会影响程序的原始功能)。我只是打算在一个特定的条件下改变它,在其他任何地方都保持不变。
只是为了让大家知道,我显然已经尝试使用不同的宏定义,我打算使用值 (17),但没有运气。
任何帮助将不胜感激。
【问题讨论】:
-
我建议为您的目的使用另一个宏,而不是#undefining 和重新定义它。
-
请注意,如果需要恢复,您将无法保存现有值并恢复它。您唯一的方法是用 13 重新定义宏,这显然是一个硬编码值。至于答案,你下面已经有2个是正确的了。
-
我确实尝试过使用不同的宏,但没有成功。程序崩溃。只有当我更改这个特定的#define 值时,它才会给我一个正确的结果(不是我打算在这个特定条件下得到的结果)。
标签: c++ mfc macros redefinition