#pragma options ディレクティブは、 ソース・プログラムのコンパイラー・オプションを指定します。
.--------------------------------------. V | >>-#--pragma--+-option--+----+-option_keyword-------------------+-+->< '-options-' | .-;---------. | | | .-,-----. | | | V V | | | '-option_keyword--=------value-+-+-'
一般にプラグマ・オプションはデフォルトでコンパイル単位全体に適用されます。
#pragma options ディレクティブで複数のコンパイラー・オプションを指定するには、 ブランク・スペースを使ってオプションを分割します。 例を以下に示します。
#pragma options langlvl=stdc89 halt=s spill=1024 source
ほとんどの #pragma options ディレクティブは、ソース・プログラムのどのステートメントよりも前に指定しなければなりません。ただし、コメント、ブランク行、および他のプラグマの指定に限り、これらのディレクティブの前に置くことができます。 例えば、以下のように、プログラムの最初の数行をコメントにして、その後に #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 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]attr
attr=full |
-qattr | すべての名前を含む属性のリストを作成する。 |
chars=option | -qchars
#pragma chars も参照 |
char 型のすべての変数を符号付きまたは符号なしのいずれかとして処理するようコンパイラーに命令する。 |
[no]check | -qcheck | 特定タイプのランタイム検査を行うコードを生成する。 |
[no]compact | -qcompact | 最適化と共に使用すると、可能な場合に、実行速度を犠牲にしてコード・サイズを削減する。 |
[no]dbcs | -qmbcs、-qdbcs | ストリング・リテラルとコメントには、DBCS 文字を含むことができる。 |
![]() |
-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 | 各関数ごとの命令を別個の csect に入れる。 |
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 | ソース・ファイル内の副次作用がない関数を指定する。 |
![]() |
-qlanglvl | 異なる言語レベルを指定する。
このディレクティブはプリプロセッサーの振る舞いを動的に変更することができます。 その結果、-E コンパイラー・オプションを指定してコンパイルすると、-E オプションを指定してコンパイルしなかったときに作成されるものと異なる結果が作成される可能性があります。 |
[no]libansi | -qlibansi | ANSI C ライブラリー関数の名前が付いたすべての関数が実際はシステム関数であると見なす。 |
[no]list | -qlist | オブジェクト・リストを含むコンパイラー・リストを生成する。 |
[no]longlong | -qlonglong | プログラムで long long 型を許可する。 |
[no]maxmem=number | -qmaxmem | 指定した重大度以上のエラーの件数が指定数に達したらコンパイルを停止するようコンパイラーに命令する。 |
[no]mbcs | -qmbcs、-qdbcs | ストリング・リテラルとコメントには、DBCS 文字を含むことができる。 |
[no]optimize
optimize=number |
-O、-qoptimize | プログラム・コードのセクションに適用される最適化レベルを指定する。
コンパイラーは number の値として以下を受け入れます。
number に値が指定されなかった場合、コンパイラーはレベル 2 の最適化を 想定します。 |
![]() |
-qpriority
#pragma priority も参照 |
静的コンストラクターを初期化する場合の優先順位を指定する。 |
[no]proclocal、 [no]procimported、 [no]procunknown | -qproclocal、-qprocimported、-qprocunknown | 関数にローカル、インポート、または不明のマークを付ける。 |
![]() |
-qproto | このオプションが設定されると、コンパイラーは、 すべての関数がプロトタイプ化されているものと想定する。 |
[no]ro | -qro | ストリング・リテラルのストレージ・タイプを指定する。 |
[no]roconst | -qroconst | 定数値のストレージ・ロケーションを指定する。 |
[no]showinc | -qshowinc | -q-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 | 指定した係数によってプログラムの内部ループをアンロールする。 |
![]() |
-qupconv | 整数拡張を行うときに符号なしの指定を保持する。 |
![]() |
-qvftable | 仮想関数テーブルの生成を制御する。 |
[no]xref | -qxref | すべての ID の相互参照リストを含むコンパイラー・リストを生成する。 |
関連情報