C程序中设置的预处理器指令值
Posted
技术标签:
【中文标题】C程序中设置的预处理器指令值【英文标题】:Pre-processor Directive value set in the C program 【发布时间】:2012-06-26 19:23:56 【问题描述】:我想定义类似的东西
#define memoryAddress
main()
bla bla bla;
memory = endAddress- startAddress;
#memoryAddress = memory;
是否有可能/有效的方式来初始化预处理器指令? 基本上,如果需要,我想使用这个特定的指令来更新新的内存地址。例如:如果它是 C 代码中的变量,我会这样做
if(memoryAddress != memory)
memoryAddress=memory
但由于我想将此 memoryAddress 用作预处理器指令,因此我想知道执行上述代码的正确方法。所以我将在编译过程开始之前为指令设置一个默认地址,但稍后我想更新它。
【问题讨论】:
不,它无效。你能解释一下你想做什么吗? 【参考方案1】:使用全局变量并使用默认值对其进行初始化。然后你可以在运行时更改它
【讨论】:
我打算使用它,但我只是想知道是否有办法做到这一点。 正如上面提到的其他人:不,预处理指令是不可能的【参考方案2】:预处理器指令由预处理器评估,它发生在编译之前。 所以你试图做的(用编译时而不是编译前已知的东西给指令赋值)是不可能的。
【讨论】:
以上是关于C程序中设置的预处理器指令值的主要内容,如果未能解决你的问题,请参考以下文章