XL C/C++ プラグマの要約

以下にリストされたプラグマは、一般的なプログラミング使用に利用できます。

プラグマ 説明
#pragma align 構造体の中のデータ項目の位置を合わせる。
C のみ #pragma alloca alloca(size_t size) 関数のインライン・バージョンを提供する。
#pragma altivec_vrsave VRSAVE レジスターを保守するために関数のプロローグとエピローグにコードを追加する。
#pragma block_loop ループ・ネスト内の特定のループのブロッキング・ループを作成するようコンパイラーに命令する。
#pragma chars 文字データの sign 型を設定する。
#pragma comment オブジェクト・ファイルにコメントを入れる。
#pragma complexgcc 関数を呼び出すときの複合タイプのパラメーターの受け渡し方法をコンパイラーに命令する。
#pragma STDC cx_limited_range コンパイラーが制御するスコープ内では、 複素数除算と絶対値は中間計算がオーバーフローしたり重要度を失わないような値だけを使用して呼び出されることをコンパイラーに命令する。
C++ のみ #pragma define クラスのオブジェクトを実際に定義することなく、テンプレート・クラスの定義を強制的に行う。
#pragma disjoint その使用スコープ内で互いに別名ではない ID をリストする。
C++ のみ #pragma do_not_instantiate 指定されたテンプレート宣言のインスタンス化を抑制する。
#pragma enum 後続の enum 変数のサイズを指定する。
#pragma execution_frequency 実行頻度が非常に高いか非常に低いと予期されるプログラム・ソース・コードにマークを付ける。
C++ のみ #pragma hashome 指定されたクラスに IsHome プラグマで指定されるホーム・モジュールがあることをコンパイラーに通知する。
#pragma ibm snapshot ブレークポイントを設定できるロケーションを指定し、プログラム実行がそのロケーションに到達したときに検査できる変数のリストをユーザーが定義できるようにする。
C++ のみ #pragma implementation プラグマが入っている組み込みファイル内のテンプレート宣言に対応する関数テンプレート定義を含むファイルの名前を、 コンパイラーに伝える。
#pragma info info(...) コンパイラー・オプションによって生成された診断メッセージを制御する。
C++ のみ #pragma instantiate 指定されたテンプレート宣言の即時インスタンス化を実行する。
C++ のみ #pragma ishome 指定されたクラスのホーム・モジュールが現行のコンパイル単位であることをコンパイラーに通知する。
#pragma isolated_call パラメーターによって暗黙指定されている関数を除き、副次作用を持たなかったり副次作用に依存しない関数をマークする。
#pragma langlvl コンパイルのために C または C++ 言語レベルを選択する。
#pragma leaves 関数名を取り、関数がその関数の呼び出し後に命令に戻らないことを指定する。
#pragma loop_id スコープ固有の ID を使用してブロックにマークを付ける。
#pragma map ID への参照がすべて新しい名前に変換されることをコンパイラーに通知する。
#pragma mc_func マシン・インストラクションの短いシーケンスを含む関数を定義できるようにする。
#pragma nosimd このディレクティブのすぐ後に続くループで VMX (Vector Multimedia Extension) 命令を生成しない ようコンパイラーに命令する。
#pragma novector 次のループを自動ベクトル化しない ようコンパイラーに命令する。
#pragma options 使用しているソース・プログラムのコンパイラーへのオプションを指定する。
#pragma option_override 指定された関数に対して代替最適化オプションを指定する。
#pragma pack このプラグマの後に続く構造体のメンバーに対する現行の位置合わせ規則を変更する。
C++ のみ #pragma priority 静的オブジェクトが初期化される順序を指定する。
#pragma reachable 到達可能とマークされたルーチンへの呼び出し後のポイントがいくつかの認識されないロケーションからの分岐のターゲットとなれることを宣言する。
#pragma reg_killed_by 指定された関数によって値が破壊されるレジスターを指定する。 これは #pragma mc_func と一緒に使用する必要があります。
C++ のみ #pragma report 特定のメッセージの生成を管理する。
#pragma stream_unroll ループに含まれたストリームを複数のストリームに切断する。
#pragma strings ストリングのストレージ・タイプを設定する。
#pragma unroll プログラムの最内部と最外部のループをアンロールする。 これによりプログラムのパフォーマンスを改善することができます。
#pragma unrollandfuse ネストされた for ループでアンロールおよびフューズ操作を試行するようコンパイラーに命令する。これによりプログラムのパフォーマンスを改善することができます。
#pragma weak リンク・エディターがシンボルの定義を見つけなかった場合、 またはリンク時に複数定義されたシンボルが見つかった場合に、 リンク・エディターがエラー・メッセージを出さないようにする。