【问题标题】:Initiate macro on runtime [duplicate]在运行时启动宏[重复]
【发布时间】:2015-11-17 16:23:44
【问题描述】:

我有一个使用几个静态变量的 C 程序。

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

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

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

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

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

【问题讨论】:

  • 那些根本不是变量
  • 为什么不将它们声明为适当范围的变量?

标签: c testing macros


【解决方案1】:

不,宏没有“”。它们会扩展到您设置的任何内容,仅此而已。

扩展,从字面上替代它们的出现。它们不是表达式,因此不会被评估,编译器可以给你输出预处理的代码,如果你尝试你会看到这个

int x = A;

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

int x = 5;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 2015-09-30
    • 2012-05-25
    • 1970-01-01
    相关资源
    最近更新 更多