Everything
4.2.3 #pragma指令

C99言語における_Pragma演算子でもこれらの拡張機能を使用できます。

(1)

セクション切り替え指定

コンパイラの出力するセクション名を切り替えます。

なお、記述方法の詳細については、「(1) セクション切り替え記述」を参照してください。

#pragma section [<セクション種別>] [△<変更セクション名>]
<セクション種別>: { P | C | D | B }

(2)

スタックセクション作成

スタックセクションを作成します。

なお、記述方法の詳細については、「(2) スタックセクション作成記述」を参照してください。

#pragma stacksize {si=<定数> | su=<定数>}

(3)

割り込み関数作成

割り込み関数を作成します。

なお、記述方法の詳細については、「(3) 割り込み関数作成記述」を参照してください。

#pragma interrupt [(]<関数名>[(<割り込み仕様>[,…])][,…][)]

(4)

関数インライン展開

関数をインライン展開します。

なお、記述方法の詳細については、「(4) 関数のインライン展開記述」を参照してください。

#pragma inline [(]<関数名>[,…][)]

(5)

関数インライン展開抑止

関数をインライン展開抑止します。

なお、記述方法の詳細については、「(4) 関数のインライン展開記述」を参照してください。

#pragma noinline [(]<関数名>[,…][)]

(6)

アセンブリ記述関数インライン展開

アセンブラ埋め込みインライン関数を作成します。

なお、記述方法の詳細については、「(5) アセンブラ記述関数インライン展開」を参照してください。

#pragma inline_asm[(]<関数名>[,…][)]

(7)

エントリ関数指定

エントリ関数を指定します。

なお、記述方法の詳細については、「(6) エントリ関数指定」を参照してください。

#pragma entry[(]<関数名>[)]

(8)

ビットフィールド並び順指定

ビットフィールド並び順を指定します。

なお、記述方法の詳細については、「(7) ビットフィールド並び順指定」を参照してください。

#pragma bit_order [{left | right}]

(9)

構造体/クラスメンバの1バイトアライメント指定

構造体/クラスメンバのアライメントを1バイトにします。

なお、記述方法の詳細については、「(8) 構造体/クラスメンバのアライメント指定」を参照してください。

#pragma pack

(10)

構造体/クラスメンバのデフォルトアライメント指定

構造体/クラスメンバのアライメントをメンバのアライメント数にします。

なお、記述方法の詳細については、「(8) 構造体/クラスメンバのアライメント指定」を参照してください。

#pragma unpack

(11)

構造体/クラスメンバのオプションアライメント指定

構造体/クラスメンバのアライメントをオプション指定にします。

なお、記述方法の詳細については、「(8) 構造体/クラスメンバのアライメント指定」を参照してください。

#pragma packoption

(12)

変数の絶対アドレス割り付け指定

変数を絶対アドレスに割り付けます。

なお、記述方法の詳細については、「(9) 変数の絶対アドレス割り付け指定」を参照してください。

#pragma address [(]<変数名>=<絶対アドレス>[,…][)]

(13)

初期値のエンディアン指定

初期値のエンディアン指定をします。

なお、記述方法の詳細については、「(10) 初期値のエンディアン指定」を参照してください。

#pragma endian [{big | little}]

(14)

分岐先4バイト整合指定

分岐先を4バイト整合する関数を指定します。

なお、記述方法の詳細については、「(11) 分岐先の命令実行向け整合を行う関数の指定」を参照してください。

#pragma instalign4 [(]<関数名>[(<分岐先の種類>)][,…][)]

(15)

分岐先8バイト整合指定

分岐先を8バイト整合する関数を指定します。

なお、記述方法の詳細については、「(11) 分岐先の命令実行向け整合を行う関数の指定」を参照してください。

#pragma instalign8 [(]<関数名>[(<分岐先の種類>)][,…][)]

(16)

分岐先整合なし指定

分岐先を整合しない関数を指定します。

なお、記述方法の詳細については、「(11) 分岐先の命令実行向け整合を行う関数の指定」を参照してください。

#pragma noinstalign [(]<関数名>[,…][)]

(17)

スタック破壊検出コードを生成する関数の指定【Professional版のみ】 【V2.04.00以降】

スタック破壊検出コードを生成します。

なお、記述方法の詳細については、「(12) スタック破壊検出コードを生成する関数の指定 【Professional版のみ】 【V2.04.00以降】」を参照してください。

#pragma stack_protector [(] 関数名[(num=< 整数値>)] [)]

(18)

スタック破壊検出コード生成なし指定【Professional版のみ】 【V2.04.00以降】

スタック破壊検出コードを生成しません。

なお、記述方法の詳細については、「(12) スタック破壊検出コードを生成する関数の指定 【Professional版のみ】 【V2.04.00以降】」を参照してください。

#pragma no_stack_protector [(]関数名[)]