变量分配顺序

xdevel2000

如果我有:

int c = 100; 
float g = 22f;

当我调试代码时,分配这些变量的地址与我编写的顺序相反。

因此,即c在address处分配,0x0086f910在addressg处分配0x0086f904

g是在之前分配的,c但是在我c之前编写的代码中g

例如,对于数组元素或结构成员(按我放置它们的顺序分配元素/成员),则不会发生这种情况。

为什么?

legends2k

C没有讨论局部变量的分配方式,位置或顺序。这些是实施细节。从语言的角度来看,这个问题尚无定论。一种实现方式可以完全随机地进行分配,以至于根本无法将其与任何内容相关联,并且仍然符合ISO C标准。

对于实现,在x86上,堆栈从上到下递增,即,从较高的内存地址向较低的内存地址分配了较新的堆栈帧,变量等。再一次,这是一个约定,可以忽略它并为x86编写一个编译器,这可能会使堆栈朝相反的方向增长。

阅读同行堆高机Eli Bendersky的x86栈顶​​位置的更多信息。它正好解决了您的困惑(尽管从实现的角度来看)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel VBA-将排序顺序分配给变量

来自分类Dev

将非顺序列表元素分配给变量

来自分类Dev

在C中求值的顺序,即为变量分配具有在同一分配中更改变量的函数

来自分类Dev

变量分配

来自分类Dev

分配变量

来自分类Dev

分配变量?

来自分类Dev

变量分配

来自分类Dev

如何在Access中为VBA中的顺序命名文本框动态分配变量

来自分类Dev

PHP-按字母顺序排序并将值分配给特定变量

来自分类Dev

根据R中的两个顺序变量分配聚类/组

来自分类Dev

PHP-按字母顺序排序并将值分配给特定变量

来自分类Dev

查找最小值并将其以相同顺序分配给新变量-C ++

来自分类Dev

使用字符串变量的字母顺序在 data.frame 中进行准随机分配

来自分类Dev

制定目标特定的分配顺序

来自分类Dev

按出现顺序分配索引

来自分类Dev

分配顺序产生不同的装配

来自分类Dev

分配颜色以遵循特定顺序

来自分类Dev

了解JavaScript对象分配的顺序

来自分类Dev

变量以什么顺序相乘

来自分类Dev

JVM调用的变量顺序

来自分类Dev

变量连接顺序错误

来自分类Dev

Perl变量的执行顺序

来自分类Dev

从javascript变量分配php变量

来自分类Dev

如何随机分配变量

来自分类Dev

立即进行变量分配

来自分类Dev

KornShell中的变量分配

来自分类Dev

Java,从文件分配变量

来自分类Dev

使用未分配的变量?

来自分类Dev

Python变量分配