グローバル(または静的ローカル)変数の次の定義が与えられます:
static const <type>* const ptr = {&var1, &var2, ...};
、初期化子リストのptrとデータの両方が生成されたオブジェクトファイルの個別の読み取り専用セクションに配置されるという事実に依存できますか(つまり、.dataまたは非const変数を含む同様のセクションには配置されません)?
質問は、すべてのアーキテクチャ/プラットフォーム(少なくとも読み取り専用メモリが存在するもの)に共通するgcc c /c++コンパイラの動作にのみ関連しています。プラットフォーム、プロセッサ、OS、リンカー、起動ランタイム、ライブラリなどを意味するものではありません。
どうか、私が何をしようとしているのか聞かないでください。私は自分が何をしているのか知っています。私が提供した情報が答えに十分でない場合、問題はxxx固有のものと見なされる必要があり、一般的な答えは「いいえ」です。私はすでに質問を読みました-この主題が非常に近くに言及された答え:
型修飾子が格納場所に与える影響
読み取り専用メモリはCでどのように実装されていますか?
「const」は単に読み取り専用またはそれ以上の意味ですか?
コンパイラでconst変数をここに「書き込む」ことができるのはなぜですか?
GCC C ++(ARM)および構造体フィールド
memcpyへのconstポインターと、constデータへの宛先ポインター
しかし、私は確実で直接的な答えを見つけられませんでした。