在GCC中編譯C代碼時,是否有任何方法可以保證堆棧變量將按照我聲明的順序出現在堆棧中(或按相反順序,無所謂對我來說)?我知道這是可以通過結構,但我寧願不使用它們。堆棧中變量的順序(GCC)
0
A
回答
4
0
如果您堅持不想使用struct,那麼您將不得不自己使用alloca()
分配堆棧內存。但是,您需要在堆棧內存中手動管理本地變量。
我不會建議你這樣做。使用一個結構。
0
最可靠的方法是引導gcc使用gcc -S
生成彙編語言輸出,並檢查彙編語言輸出以找出哪些變量放在哪裏。如果您沒有進行優化編譯,則變量可能不會被移除或重新排列,如果您爲每個局部變量分配不同的值,應該很容易找到每個變量。
我承認這不是很高科技。但是如果你想確保gcc生成的代碼能夠以特定的方式工作,你將不得不看看它生成的代碼...
相關問題
- 1. 堆棧變量
- 2. ggplot堆棧條的順序
- 3. 是否有在C++堆棧變量的順序被破壞
- 4. Visual Studio如何決定堆棧變量的分配順序?
- 5. 堆棧中局部變量的GCC符號表
- 6. css堆棧順序,z-index
- 7. css transform3d和堆棧順序
- 8. iPhone CALayer堆棧順序
- 9. GCC堆棧優化
- 10. JVM堆棧變量
- 11. 調用堆棧上的異常處理堆棧幀的順序
- 12. [R排序/順序堆積變量
- 13. 重新排序引導堆棧順序
- 14. 堆棧元素的反向順序
- 15. 堆棧,foreach,錯誤的順序?
- 16. 堆棧變量在走?
- 17. 有條件堆棧變量
- 18. 返回堆棧變量?
- 19. c堆棧變量損壞
- 20. C中的損壞堆棧變量
- 21. IL無堆棧變量的堆棧項的頂部複製
- 22. C++(GCC):未定義的引用`堆棧<int> ::堆棧(INT)」
- 23. Z-Index更改堆棧順序FadeIn FadeOut
- 24. 更改異物堆棧順序
- 25. 堆棧數據存儲順序
- 26. 使用BootStrap嵌套Div堆棧順序
- 27. Bootstrap 3,更改摺疊堆棧順序
- 28. 如何在gcc中恢復堆棧幀?
- 29. 在C++中刪除堆棧變量
- 30. 在javascript中調用堆棧變量
爲什麼你想要這樣?而'struct'有什麼問題? – 2012-03-02 15:00:23
可能重複的[可以C編譯器重新排列堆棧變量?](http://stackoverflow.com/questions/238441/can-ac-compiler-rearrange-stack-variables) – 2012-03-02 15:01:05
我想演示一定的堆棧溢出問題時緩衝區和指針,並以某種方式定位。我不想使用結構體(相反,我不能),因爲有些變量是在內聯函數中聲明的,這些函數稍後會在主例程中調用。 – leetrobot 2012-03-02 15:03:08