Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Cでの定数の保存について質問があります。
次のステートメントがある場合:
const int a = 5;
ステートメントがグローバルスコープにある場合、定数は.rodataに格納されます。私はMSP430デバイス用のTIコンパイラを使用しています。ステートメントがローカルスコープにある場合、定数はスタックに格納されます。
ローカルスコープで「静的定数」として宣言するとどうなるかわかりませんが、.rodataに格納されると思います。
この動作は正しいですか?
「正しい」動作はありません。プラットフォーム、ツールチェーンのタイプとバージョン、OS、コンパイラ、およびリンカーの設定はすべて、変数が最終的に配置されるセクションに大きな影響を与えます。
、、などstatic constに入れられているのを見たことがあります。.text.data.sdata
static const
.text
.data
.sdata