#pragma options

C に適用 C++ に適用

説明

#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 同等のコンパイラー・オプション 説明
ngclang のアートワーク
C++ に適用
align=option -qalign コンパイラーがファイルのコンパイルに使用する集合体の位置合わせ規則を指定する。
ngclang のアートワーク
C++ に適用
[no]ansialias -qalias 型ベースの別名割り当てを最適化中に使用するかどうかを指定する。
ngclang のアートワーク
C++ に適用
assert=option -qalias 別名割り当てアサーションをコンパイル単位に適用するようにコンパイラーに要求する。
ngclang のアートワーク
C++ に適用
[no]attr

attr=full

-qattr すべての名前を含む属性のリストを作成する。
ngclang のアートワーク
C++ に適用
chars=option -qchars

#pragma chars も参照

コンパイラーに、 char 型の変数をすべて signed または unsigned のいずれかとして処理するように指示する。
ngclang のアートワーク
C++ に適用
[no]check -qcheck 特定のタイプの実行時検査を行うコードを生成する。
ngclang のアートワーク
C++ に適用
[no]compact -qcompact 最適化とともに使用すると、可能な場合に、実行速度を犠牲にしてコード・サイズが削減される。
ngclang のアートワーク
C++ に適用
[no]dbcs -qmbcs、dbcs ストリング・リテラルとコメントには、マルチバイト文字を含むことができる。
ngclang のアートワーク

[no]dbxextra -qdbxextra 参照されない変数のためのシンボル・テーブル情報を生成する。
ngclang のアートワーク
C++ に適用
[no]digraph -qdigraph 特定の連字とキーワード演算子を使用することができる。
ngclang のアートワーク
C++ に適用
[no]dollar -qdollar $ シンボルを ID の名前で使用できるようにする。
ngclang のアートワーク
C++ に適用
enum=option -qenum

#pragma enum も参照

列挙の占めるストレージの量を指定する。
ngclang のアートワーク
C++ に適用
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)

ngclang のアートワーク
C++ に適用
float=[no]option -qfloat 浮動小数点演算を高速化するか正確度を向上させるために、各種浮動小数点オプションを指定する。
ngclang のアートワーク
C++ に適用
[no]flttrap=option -qflttrap 追加の命令を生成し、浮動小数点例外を検出してトラップする。
ngclang のアートワーク
C++ に適用
[no]fullpath -qfullpath ファイルに保管されているパス情報を dbx スタブ・ストリングに指定する。
ngclang のアートワーク
C++ に適用
[no]funcsect -qfuncsect 各関数ごとの命令を別個の cset に入れる。
ngclang のアートワーク
C++ に適用
halt -qhalt 指定された重大度のエラーが検出されると、コンパイラーを停止する。
ngclang のアートワーク
C++ に適用
[no]idirfirst -qidirfirst ユーザー・インクルード・ファイルの検索順序を指定する。
ngclang のアートワーク
C++ に適用
[no]ignerrno -qignerrno コンパイラーが、システム呼び出しによって errno が変更されないと想定して最適化を行うことを許可する。
ngclang のアートワーク
C++ に適用
ignprag=option -qignprag 特定のプラグマ・ステートメントを無視するようにコンパイラーに指示する。
ngclang のアートワーク
C++ に適用
[no]info=option -qinfo

#pragma info も参照

通知メッセージを作成する。
ngclang のアートワーク
C++ に適用
initauto=value -qinitauto 指定された 16 進バイト値に自動ストレージを初期化する。
ngclang のアートワーク
C++ に適用
[no]inlglue -qinlglue 外部関数の呼び出しまたは関数ポインターを介した呼び出しを行うために必要なポインター・グルー・コードをインライン化することによって、高速な外部結合を生成する。
ngclang のアートワーク
C++ に適用
isolated_call=names -qisolated_call

#pragma isolated_call も参照

ソース・ファイル内の副次作用がない関数を指定する。
ngclang のアートワーク

langlvl -qlanglvl 異なる言語レベルを指定する。

このディレクティブは、プリプロセッサーの動きを動的に変更することができます。結果として、-E コンパイラー・オプションを指定してコンパイルすると、 -E オプションを指定しないでコンパイルしたときに生成される結果とは異なる結果を生成する場合があります。

ngclang のアートワーク
C++ に適用
[no]libansi -qlibansi ANSI C ライブラリー関数の名前が付いたすべての関数が実際はシステム関数であると見なす。
ngclang のアートワーク
C++ に適用
[no]list -qlist オブジェクト・リストを含むコンパイラー・リストを生成する。
ngclang のアートワーク
C++ に適用
[no]longlong -qlonglong プログラムで long long 型を許可する。
ngclang のアートワーク
C++ に適用
[no]maxmem=number -qmaxmem 指定した重大度以上のエラーの件数が指定した数に達した場合に、コンパイルを停止するようにコンパイラーに指示する。
ngclang のアートワーク
C++ に適用
[no]mbcs -qmbcs、dbcs ストリング・リテラルとコメントには、マルチバイト文字を含むことができる。
ngclang のアートワーク
C++ に適用
[no]optimize
optimize=number
-O、optimize プログラム・コードのセクションに適用される最適化レベルを指定する。

コンパイラーは number の値として以下を受け入れます。

  • 0 - レベル 0 の最適化を設定します
  • 2 - レベル 2 の最適化を設定します
  • 3 - レベル 3 の最適化を設定します

number に値が指定されなかった場合、コンパイラーはレベル 2 の最適化を想定します。


C++ に適用
priority=number -qpriority

#pragma priority も参照

静的コンストラクターを初期化する場合の優先順位を指定する。
ngclang のアートワーク
C++ に適用
[no]proclocal、 [no]procimported、 [no]procunknown -qproclocal、 procimported、 procunknown ローカル、インポートされるもの、または不明として、関数にマークを付ける。
ngclang のアートワーク

[no]proto -qproto このオプションが設定されると、コンパイラーは、すべての関数がプロトタイプ化されているものと想定する。
ngclang のアートワーク
C++ に適用
[no]ro -qro ストリング・リテラルの保管型を指定する。
ngclang のアートワーク
C++ に適用
[no]roconst -qroconst 定数値の保管場所を指定する。
ngclang のアートワーク
C++ に適用
[no]showinc -qshowinc -qsource で使用された場合は、すべてのインクルード・ファイルをソース・リストに組み込む。
ngclang のアートワーク
C++ に適用
[no]source -qsource ソース・リストを作成する。
ngclang のアートワーク
C++ に適用
spill=number -qspill レジスター割り振り予備域のサイズを指定する。
ngclang のアートワーク
C++ に適用
[no]stdinc -qstdinc #include <file_name> および #include "file_name" ディレクティブで組み込むファイルを指定する。
ngclang のアートワーク
C++ に適用
[no]strict -qstrict プログラムのセマンティクスを変更する可能性がある -O3 コンパイラー・オプションの積極的な最適化をオフにする。
ngclang のアートワーク
C++ に適用
tbtable=option -qtbtable コンパイラーによって認識されるタブの長さを変更する。
ngclang のアートワーク
C++ に適用
tune=option -qtune 実行可能プログラムの最適化対象とするアーキテクチャーを指定する。
ngclang のアートワーク
C++ に適用
[no]unroll

unroll=number

-qunroll 指定した係数によってプログラムの内部ループをアンロールする。
ngclang のアートワーク

[no]upconv -qupconv 整数拡張を行うときに unsigned の指定を保持する。

C++ に適用
[no]vftable -qvftable 仮想関数テーブルの生成を制御する。
ngclang のアートワーク
C++ に適用
[no]xref -qxref すべての ID の相互参照リストを含むコンパイラー・リストを生成する。

関連参照

汎用プラグマ
E IBM Copyright 2003