gpt4 book ai didi

c++ - 正在声明一个变量指令

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:03 24 4
gpt4 key购买 nike

在高级语言(如 C++)中声明/分配变量是显式指令吗?

例如x = 5;

它将由加载器处理,并被视为状态信息,对吗?

它不是一条指令,而是一个状态对象,而不是像 for 循环这样的东西,它是一条指令,它是通往 cpu 的路径?

编辑:好的,澄清一点。我不是在谈论优化。假设没有。我说的是可执行文件格式的已编译程序的最终结果。在编译器决定不使用MOV指令的情况下,数据5会存在于可执行文件数据段内,还是其他地方?

5 是否有可能作为数据而不是指令存在,然后将该数据加载到内存中?或者,一般情况下,x = 5 会在程序执行时产生一条 mov 指令。

最佳答案

您是在问变量声明是否会像添加或删除一样转换为汇编指令?如果是这样,那么一般的答案是没有直接 翻译成汇编。

可能有一些指令可以促进变量的声明,例如更新堆栈指针以为变量腾出空间。但是没有 x86 汇编指令说在堆栈上声明这种类型的变量。

我的大部分经验都与 x86 和 amd64 芯片有关,因此其他处理器上可能有指令,但我不知道它们(但如果它们确实存在,我会很好奇地阅读它们)。

变量赋值有点不同。 x=5 的一般 情况将转化为某种类型的汇编指令(例如将值写入寄存器)。然而,对于 C++,它真的很难具体化,因为有许多优化和芯片特定设置可能导致特定行在机器代码中没有翻译。

关于c++ - 正在声明一个变量指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/939857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com