2012-11-17 60 views
3

我有一個關於在C常量存儲問題的存儲用C局部常量

如果我有下面的語句:

const int a = 5; 

如果語句是在全球範圍內,不斷將存儲在.rodata中。 我一直在使用適用於MSP430器件的TI編譯器。如果語句在本地範圍內,則常量將存儲在堆棧中。

我不確定如果我將它聲明爲局部範圍內的「靜態常量」會發生什麼情況,但我希望它會存儲在.rodata中。

此行爲是否正確?

+0

我不瞭解TI編譯器,但大多數編譯器都會將'const int a = 5;'看作類似於#define a 5的格式,而不是將其存儲在任何地方。 –

回答

1

沒有「正確的」行爲。平臺,工具鏈類型和版本,操作系統,編譯器和連接器設置對部分變量將在結束所有巨大的影響力。

我見過static const被放在.text.data.sdata