印象中堂油,在一個函數(shù)里定義的局部變量,先定義的在高地址碧绞,后定義的在低地址府框。
但今天仔細(xì)測試了下,發(fā)現(xiàn)情況并不總是如此头遭。
Win10 VS2017寓免,Debug x64
image.png
先低后高
Win10 VS2017,Debug x86
image.png
先高后低
Win10 VS2017计维,Release x64
image.png
先高后低
Win10 VS2017袜香,Release x86
image.png
先低后高
Ubuntu18 gcc7.5,Debug x64
image.png
先低后高
Ubuntu18 gcc7.5鲫惶,Debug x86
image.png
先低后高
Ubuntu18 gcc7.5蜈首,Release x64
image.png
先低后高
Ubuntu18 gcc7.5,Release x86
image.png
先低后高
綜上欠母,是不是可以下個結(jié)論:linux gcc里都是先低后高欢策?
答案是否。
下面是fedora 37 + gcc 12.2中測試結(jié)果:
image.png
所以赏淌,函數(shù)里局部變量地址高低與定義順序的關(guān)系踩寇,并沒有一個統(tǒng)一的規(guī)則。