3

Cでの定数の保存について質問があります。

次のステートメントがある場合:

const int a = 5;

ステートメントがグローバルスコープにある場合、定数は.rodataに格納されます。私はMSP430デバイス用のTIコンパイラを使用しています。ステートメントがローカルスコープにある場合、定数はスタックに格納されます。

ローカルスコープで「静的定数」として宣言するとどうなるかわかりませんが、.rodataに格納されると思います。

この動作は正しいですか?

4

1 に答える 1

1

「正しい」動作はありません。プラットフォーム、ツールチェーンのタイプとバージョン、OS、コンパイラ、およびリンカーの設定はすべて、変数が最終的に配置されるセクションに大きな影響を与えます。

、、などstatic constに入れられているのを見たことがあります。.text.data.sdata

于 2012-11-17T08:47:56.900 に答える