#pragma options ディレクティブは、ソース・プログラムのコンパイラー・オプションを指定します。
デフォルトでは、プラグマ・オプションは通常、コンパイル単位全体に適用されます。
#pragma options ディレクティブで複数のコンパイラー・オプションを指定するには、ブランク・スペースを使ってオプションを分割します。例を以下に示します。
#pragma options langlvl=stdc89 halt=s spill=1024 source
ほとんどの #pragma options ディレクティブは、ソース・プログラムのいずれのステートメントよりも前に指定しなければなりません。ただし、コメント、ブランク行、および他の #pragma の指定に限り、これらのディレクティブの前に置けます。例えば、以下のように、プログラムの最初の数行をコメントにして、その後に #pragma options ディレクティブを続けることができます。
/* The following is an example of a #pragma options directive: */
#pragma options langlvl=stdc89 halt=s spill=1024 source
/* The rest of the source follows ... */
ソース・プログラムのすべてのコードの前に指定されたオプションは、コンパイル単位全体に適用されます。プログラムの中で、他の #pragma ディレクティブを使用すると、ソース・コードの選択済みブロックに対してオプションをオンにすることができます。例えば、以下のとおり、ソース・コードの一部をコンパイラー・リストに組み込むように要求することができます。
#pragma options source
/* Source code between the source and nosource #pragma options is included in the compiler listing */
#pragma options nosource
下記の表の設定は、
#pragma options で有効なオプション です。詳しくは、同等のコンパイラー・オプションのページを参照してください。
言語アプリケーション | #pragma options に有効な設定 option_keyword | 同等のコンパイラー・オプション | 説明 | |
---|---|---|---|---|
![]() |
![]() | align=option | -qalign | コンパイラーがファイルのコンパイルに使用する集合体の位置合わせ規則を指定する。 |
![]() |
![]() | [no]ansialias | -qalias | 型ベースの別名割り当てを最適化中に使用するかどうかを指定する。 |
![]() |
![]() | assert=option | -qalias | 別名割り当てアサーションをコンパイル単位に適用するようにコンパイラーに要求する。 |
![]() |
![]() | [no]attr
attr=full | -qattr | すべての名前を含む属性のリストを作成する。 |
![]() |
![]() | chars=option | -qchars
#pragma chars も参照 | コンパイラーに、 char 型の変数をすべて signed または unsigned のいずれかとして処理するように指示する。 |
![]() |
![]() | [no]check | -qcheck | 特定のタイプの実行時検査を行うコードを生成する。 |
![]() |
![]() | [no]compact | -qcompact | 最適化とともに使用すると、可能な場合に、実行速度を犠牲にしてコード・サイズが削減される。 |
![]() |
![]() | [no]dbcs | -qmbcs、dbcs | ストリング・リテラルとコメントには、マルチバイト文字を含むことができる。 |
![]() |
| [no]dbxextra | -qdbxextra | 参照されない変数のためのシンボル・テーブル情報を生成する。 |
![]() |
![]() | [no]digraph | -qdigraph | 特定の連字とキーワード演算子を使用することができる。 |
![]() |
![]() | [no]dollar | -qdollar | $ シンボルを ID の名前で使用できるようにする。 |
![]() |
![]() | enum=option | -qenum
#pragma enum も参照 | 列挙の占めるストレージの量を指定する。 |
![]() |
![]() | flag=option | -qflag | 報告させる診断メッセージの最低の重大度レベルを指定する。
重大度レベルは、以下のように指定することもできます。 #pragma options flag=i => #pragma report (level,I) #pragma options flag=w => #pragma report (level,W) #pragma options flag=e,s,u => #pragma report (level,E) |
![]() |
![]() | float=[no]option | -qfloat | 浮動小数点演算を高速化するか正確度を向上させるために、各種浮動小数点オプションを指定する。 |
![]() |
![]() | [no]flttrap=option | -qflttrap | 追加の命令を生成し、浮動小数点例外を検出してトラップする。 |
![]() |
![]() | [no]fullpath | -qfullpath | ファイルに保管されているパス情報を dbx スタブ・ストリングに指定する。 |
![]() |
![]() | [no]funcsect | -qfuncsect | 各関数ごとの命令を別個の cset に入れる。 |
![]() |
![]() | halt | -qhalt | 指定された重大度のエラーが検出されると、コンパイラーを停止する。 |
![]() |
![]() | [no]idirfirst | -qidirfirst | ユーザー・インクルード・ファイルの検索順序を指定する。 |
![]() |
![]() | [no]ignerrno | -qignerrno | コンパイラーが、システム呼び出しによって errno が変更されないと想定して最適化を行うことを許可する。 |
![]() |
![]() | ignprag=option | -qignprag | 特定のプラグマ・ステートメントを無視するようにコンパイラーに指示する。 |
![]() |
![]() | [no]info=option | -qinfo
#pragma info も参照 | 通知メッセージを作成する。 |
![]() |
![]() | initauto=value | -qinitauto | 指定された 16 進バイト値に自動ストレージを初期化する。 |
![]() |
![]() | [no]inlglue | -qinlglue | 外部関数の呼び出しまたは関数ポインターを介した呼び出しを行うために必要なポインター・グルー・コードをインライン化することによって、高速な外部結合を生成する。 |
![]() |
![]() | isolated_call=names | -qisolated_call
| ソース・ファイル内の副次作用がない関数を指定する。 |
![]() |
| langlvl | -qlanglvl | 異なる言語レベルを指定する。
このディレクティブは、プリプロセッサーの動きを動的に変更することができます。結果として、-E コンパイラー・オプションを指定してコンパイルすると、 -E オプションを指定しないでコンパイルしたときに生成される結果とは異なる結果を生成する場合があります。 |
![]() |
![]() | [no]libansi | -qlibansi | ANSI C ライブラリー関数の名前が付いたすべての関数が実際はシステム関数であると見なす。 |
![]() |
![]() | [no]list | -qlist | オブジェクト・リストを含むコンパイラー・リストを生成する。 |
![]() |
![]() | [no]longlong | -qlonglong | プログラムで long long 型を許可する。 |
![]() |
![]() | [no]maxmem=number | -qmaxmem | 指定した重大度以上のエラーの件数が指定した数に達した場合に、コンパイルを停止するようにコンパイラーに指示する。 |
![]() |
![]() | [no]mbcs | -qmbcs、dbcs | ストリング・リテラルとコメントには、マルチバイト文字を含むことができる。 |
![]() |
![]() | [no]optimize
optimize=number | -O、optimize | プログラム・コードのセクションに適用される最適化レベルを指定する。
コンパイラーは number の値として以下を受け入れます。
number に値が指定されなかった場合、コンパイラーはレベル 2 の最適化を想定します。 |
|
![]() | priority=number | -qpriority
#pragma priority も参照 | 静的コンストラクターを初期化する場合の優先順位を指定する。 |
![]() |
![]() | [no]proclocal、 [no]procimported、 [no]procunknown | -qproclocal、 procimported、 procunknown | ローカル、インポートされるもの、または不明として、関数にマークを付ける。 |
![]() |
| [no]proto | -qproto | このオプションが設定されると、コンパイラーは、すべての関数がプロトタイプ化されているものと想定する。 |
![]() |
![]() | [no]ro | -qro | ストリング・リテラルの保管型を指定する。 |
![]() |
![]() | [no]roconst | -qroconst | 定数値の保管場所を指定する。 |
![]() |
![]() | [no]showinc | -qshowinc | -qsource で使用された場合は、すべてのインクルード・ファイルをソース・リストに組み込む。 |
![]() |
![]() | [no]source | -qsource | ソース・リストを作成する。 |
![]() |
![]() | spill=number | -qspill | レジスター割り振り予備域のサイズを指定する。 |
![]() |
![]() | [no]stdinc | -qstdinc | #include <file_name> および #include "file_name" ディレクティブで組み込むファイルを指定する。 |
![]() |
![]() | [no]strict | -qstrict | プログラムのセマンティクスを変更する可能性がある -O3 コンパイラー・オプションの積極的な最適化をオフにする。 |
![]() |
![]() | tbtable=option | -qtbtable | コンパイラーによって認識されるタブの長さを変更する。 |
![]() |
![]() | tune=option | -qtune | 実行可能プログラムの最適化対象とするアーキテクチャーを指定する。 |
![]() |
![]() | [no]unroll
unroll=number | -qunroll | 指定した係数によってプログラムの内部ループをアンロールする。 |
![]() |
| [no]upconv | -qupconv | 整数拡張を行うときに unsigned の指定を保持する。 |
|
![]() | [no]vftable | -qvftable | 仮想関数テーブルの生成を制御する。 |
![]() |
![]() | [no]xref | -qxref | すべての ID の相互参照リストを含むコンパイラー・リストを生成する。 |