データと関数のメモリ配置制御
このセクションの内容:
コンパイラでは、関数とデータオブジェクトのメモリへの配置を制御するためのさまざまな仕組みを提供しています。 メモリを効率的に使用するためには、これらの仕組みに精通し、さまざまな状況に応じて最適な方法を判別できることが必要です。これらを以下に示します。
@演算子および#pragma locationディレクティブによる絶対配置@演算子または#pragma locationディレクティブを使用して、個々のグローバル変数および静的変数を絶対アドレスに配置できます。ただし、この表記を個々の関数の絶対配置に使用することはできません。詳細については、絶対アドレスへのデータ配置を参照してください。@演算子および#pragmalocationディレクティブによるセクションの配置@演算子または#pragmalocationディレクティブを使用して、名前付きのセクションに個々の関数、変数、および定数を配置できます。これらセクションの配置はリンカディレクティブによって制御されます。詳細については、データと関数のセクションへの配置を参照してください。@演算子および#pragma locationディレクティブによるレジスタの配置@演算子または
#pragma locationディレクティブを使用して、個々のグローバル変数および静的変数をレジスタに配置できます。変数は__no_initとして宣言する必要があります。これは、特定のレジスタに配置しなければならない個々のデータオブジェクトに役立ちます。‑‑sectionオプションを使用して、特定のモードの関数、変数、および定数にデフォルトのセグメントを設定できます。詳細については、‑‑sectionを参照してください。