在C中存储局部常量

时间:2012-11-17 06:09:48

标签: c linker elf

我有一个关于在C中存储常量的问题。

如果我有以下声明:

const int a = 5;

如果语句在全局范围内,则常量将存储在.rodata中。 我一直在使用用于MSP430器件的TI编译器。如果语句在本地范围内,则常量将存储在堆栈中。

我不确定如果我在本地范围内将其声明为“静态const”会发生什么,但我希望它存储在.rodata中。

这种行为是否正确?

1 个答案:

答案 0 :(得分:1)

没有“正确”的行为。平台,工具链类型和版本,操作系统,编译器和链接器设置对变量最终会产生的部分产生巨大影响。

我已将static const放入.text.data.sdata等等。