在C程序中设置的预处理器指令值

时间:2012-06-26 19:23:57

标签: c c-preprocessor preprocessor-directive

我想定义类似

的内容
#define memoryAddress
main()
{
    bla bla bla;
    memory = endAddress- startAddress;
    #memoryAddress = memory;
}

初始化预处理器指令是否可行/有效? 基本上我想使用这个特定的指令来更新新的内存地址(如果需要)。例如:如果它是C代码中的变量,我会做

if(memoryAddress != memory)
memoryAddress=memory

但是由于我想将此memoryAddress用作预处理器指令,我想知道执行上述代码的正确方法。因此,在编译过程开始之前,我将获得该指令的默认地址,但稍后我想更新它。

2 个答案:

答案 0 :(得分:1)

使用全局变量并使用默认值对其进行初始化。然后你可以在运行时更改它

答案 1 :(得分:0)

预处理器指令由预处理器评估,并且在 编译之前发生
所以你要做的是什么(在编译时用编译时知道的东西而不是在编译之前为指令赋值)。