我有C程序,它使用几个静态变量。
#define A 5
#define B 1
#define C 60
现在,我想确定应该为这些宏提供哪些值,以便从我的算法中获得最佳结果。
要找到这些值,我只想为我想要测试的每个值运行算法。
为此,我必须在运行时更改这些宏的值。
有没有办法这样做? (老实说,因为这些是静态的,我不希望如此) 替代方案:是否有另一种(更好的)方法来实现我的测试目标?
答案 0 :(得分:2)
不,宏没有“值”。他们扩展到你设置的任何东西,就是这样。
扩张,文明取代他们的出现。它们不是表达式,因此不进行评估,编译器可以为您提供预处理代码的输出,如果您尝试将看到这个
int x = A;
将替换为(使用您发布的定义)
int x = 5;
编译之前,因此无法在运行时更改值;即编译后。