#include <stdio.h>
int main()
{
int i = 10;
return 0;
}
在上面的程序中,值 10 到底存储在哪里?
我知道变量 i 存储在堆栈中。堆栈在运行时填充。来自“确切”10 的来源。
最佳答案
10 是一个常量,因此编译器将在程序的可执行部分中直接使用数字 10 作为 CPU 指令的一部分。
这是在我的系统上使用 gcc
生成的程序集:
movl $10, -4(%rbp)
(4
是因为 int
是 4 个字节长)
请注意,所有这些都是实现的一部分,但以上内容是实际发生的。语言本身并未指定这些细节。
关于c - 本地初始值存储在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15638122/