2012-11-17 29 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