alloc_text pragma

指定した関数定義が配置されているコード セクションに名前を付けます。 pragma は、名前付き関数の関数宣言子と関数定義の間で指定する必要があります。

構文

#pragma alloc_text( "text-section" ,function_1 [,function_2 ... ] )

解説

alloc_textpragma は、C++ メンバー関数またはオーバーロード関数を処理しません。 C リンケージで宣言された関数、つまり、extern "C" リンケージ仕様で宣言された関数にのみ適用されます。 C++ リンケージを持つ関数でこの pragma を使用しようとすると、コンパイラ エラーが生成されます。

__based を使用した関数アドレス指定はサポートされていないため、セクションの場所を指定するには alloc_textpragma を使用する必要があります。 text-section で指定する名前は二重引用符で囲む必要があります。

alloc_textpragma は、指定された任意の関数の宣言の後、およびこれらの関数の定義の前に記述する必要があります。

alloc_textpragma で参照される関数は、pragma と同じモジュールで定義する必要があります。 このようにしないと、未定義の関数が後で別のテキスト セクションにコンパイルされる場合に、エラーがキャッチされたりされなかったりします。 プログラムは通常は正しく動作しますが、関数は目的のセクションでは割り当てられません。

alloc_text に関するその他の制限事項は次のとおりです。

  • 関数内では使用できません。

  • 関数が宣言された後で、関数が定義される前に使用する必要があります。

関連項目

pragma ディレクティブと __pragma および _Pragma キーワード