2015-11-17 197 views
0

我有使用几个静态变量的C程序。在运行时启动宏

#define A 5 
#define B 1 
#define C 60 

现在,我想确定哪些值应该给这些宏以从我的算法中获得最佳结果。

要找到这些值,我只想为我想测试的每个值运行我的算法。

为此,我必须在运行时更改这些宏的值。

有没有办法做到这一点? (老实说,因为这些都是静态的,所以我不这么认为) 替代方案:是否有另一种(更好的)方法来实现我的测试目标?

+2

这些都不是*变量*! –

+0

为什么不把它们声明为适当范围的变量? –

回答

2

不,宏没有“”。他们扩展到你设定的任何东西,就是这样。

扩展,文学替代它们的发生。他们不是表达式,因此不被评估,编译器可以给你作为输出的预处理代码,如果你尝试,你会看到,这

int x = A; 

将被替换(使用定义你贴

int x = 5; 

编译前,所以不可能在运行时改变值;即编译后。