次に,拡張言語仕様としてサポートしている#pragma指令を示します。
|
|
#pragma section 属性指定文字 "セクション名"
|
データとプログラムのセクション割り当て
|
#pragma section 属性指定文字
|
#pragma section [文字列]
|
#pragma inline_asm [(]関数名[(size=数値)][, 関数名[(size=数値)], ...][)]
|
アセンブラ命令の記述
|
#pragma inline [(]関数名[, 関数名, ...][)]
|
インライン展開
|
#pragma noinline [(]関数名[, 関数名, ...][)]
|
#pragma interrupt [(]関数名[(割り込み仕様 [, 割り込み仕様]...)] [,...] [)]
|
割り込み/例外ハンドラ指定
|
#pragma block_interrupt [(]関数名[)]
|
割り込み禁止関数指定
|
#pragma rtos_task [関数名]
|
タスク指定
|
#pragma pack [(][1|2|4][)]
|
構造体パッキング指定
|
#pragma bit_order [{left|right}]
|
ビット・フィールドの割り付け
|
#pragma pmodule pm指定
|
コア番号指定(マルチコア用)
|
#pragma align4 [(]関数名[(仕様)][)]
|
分岐先アドレスのアライメント指定
|
#pragma stack_protector [(]関数名[(num=<整数値>)][)]
|
スタック破壊検出機能
【Professional 版のみ】
|
#pragma no_stack_protector [(]関数名[)]
|
C言語レベルでモジュールやデータを任意のセクションに割り当てることができます。
なお,記述方法についての詳細は「4.2.4.1 データとプログラムのセクション割り当て」を参照してください。
#pragma section 属性指定文字 "セクション名"
|
C言語中に,アセンブラ命令を記述することができます。
なお,記述方法についての詳細は「4.2.4.2 アセンブラ命令の記述」を参照してください。
#pragma inline_asm [(]関数名[(size=数値)][, 関数名[(size=数値)], ...][)]
|
インライン展開する関数を指定することができます。
なお,インライン展開についての詳細は「4.2.4.3 インライン展開」を参照してください。
#pragma inline [(]関数名[, 関数名, ...][)]
|
インライン展開を抑止する関数を指定することができます。
なお,インライン展開対象外関数指定についての詳細は「4.2.4.3 インライン展開」を参照してください。
#pragma noinline [(]関数名[, 関数名, ...][)]
|
割り込み/例外処理ハンドラをC言語で記述します。
なお,記述方法については「(3) 割り込み/例外ハンドラの記述方法」を参照してください。
#pragma interrupt [(]関数名[(割り込み仕様 [, 割り込み仕様]...)] [,...] [)]
|
関数全体を割り込み禁止にします。
なお,記述方法についての詳細は「(2) 関数全体の割り込みを禁止する方法」を参照してください。
#pragma block_interrupt [(]関数名[)]
|
構造体パッキングを指定します。数値はパッキング値,すなわちメンバのアライメント値を指定します。数値には1,2,4が指定できます。数値を指定しない場合,デフォルトのアライメントとなります。
なお,記述方法についての詳細は「4.2.4.8 構造体パッキング」を参照してください。
#pragma pack [(][1|2|4][)]
|
ビット・フィールドの並び順の切り替えを指定します。
なお,記述方法についての詳細は「4.2.4.9 ビット・フィールドの割り付け」を参照してください。
#pragma bit_order [{left|right}]
|
コア番号指定を行う関数を指定することができます。
なお,コア番号指定についての詳細は「4.2.4.10 コア番号指定(マルチコア用)」を参照してください。
分岐先アドレスのアライメントを指定することができます。
なお,分岐先アドレスのアライメント指定についての詳細は「4.2.4.11 分岐先アドレスのアライメント指定」を参照してください。
#pragma align4 [(]関数名[(仕様)][)]
|
(10) | スタック破壊検出機能 【Professional 版のみ】 |
スタック破壊検出コードを生成する関数を指定することができます。
なお,スタック破壊検出機能の詳細については「4.2.4.12 スタック破壊検出機能 【Professional 版のみ】」を参照してください。
#pragma stack_protector [(]関数名[(num=<整数値>)][)]
|
スタック破壊検出コードを生成しない関数を指定することができます。
なお,スタック破壊検出機能の詳細については「4.2.4.12 スタック破壊検出機能 【Professional 版のみ】」を参照してください。
#pragma no_stack_protector [(]関数名[)]
|