在运行时启动宏

时间:2015-11-17 16:23:45

标签: c testing macros

我有C程序,它使用几个静态变量。

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

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

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

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

有没有办法这样做? (老实说,因为这些是静态的,我不希望如此) 替代方案:是否有另一种(更好的)方法来实现我的测试目标?

1 个答案:

答案 0 :(得分:2)

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

扩张,文明取代他们的出现。它们不是表达式,因此不进行评估,编译器可以为您提供预处理代码的输出,如果您尝试将看到这个

int x = A;

将替换为(使用您发布的定义

int x = 5;
编译之前

,因此无法在运行时更改值;即编译后。