【发布时间】:2019-05-27 19:41:02
【问题描述】:
本地 const 变量将存储在哪里?我已经验证,在函数中使用 const 变量的每个地方,都被其值替换(如立即值寻址模式)。但是,如果将指针分配给它,那么它将存储在堆栈中。在这里,我不明白处理器如何知道其常数值的一件事。堆栈中是否有像 .data 部分一样的只读部分?
【问题讨论】:
-
实现了定义的行为
-
我说的有点离题了,但我真的认为在你学习的这个阶段你不应该为此担心。 C 不是通用汇编程序。您不应将其视为一个并不断想知道它会产生什么组件。 C 是一种高级语言,用于描述您希望程序具有的行为。然后编译器生成具有该行为的代码。如果它可以证明在你的程序中,那个 const 变量会有一个特定的值,那么它就可以常量折叠。它仍然是相同的行为和有效的程序。
标签: c