前処理命令内の文字定数は他の式のものと同一の数値を持ちます。
この場合の文字定数は負の値を取ることがあります (SPARC) (x86)。
最初に、ファイル名が < > によって区切られたファイルを、-I オプションによって指定されたディレクトリの中で検索します。次に、標準ディレクトリの中を検索します。異なるデフォルト位置を指定するのに -YI オプションが使用されていない限り、標準ディレクトリは /usr/include です。
最初に、ファイル名が引用符によって区切られたファイルを、#include 文のあるソースファイルのディレクトリ中で検索します。次に、-I オプションによって指定されたディレクトリの中を検索し、最後に標準ディレクトリの中を検索します。
< > や二重引用符で囲まれたファイル名が '/' で始まっている場合は、そのファイル名はルートディレクトリで始まるパス名であると解釈されます。このファイルの検索はルートディレクトリの中においてのみ開始されます。
インクルード命令の引用符付きのファイル名はサポートされます。
ソースファイルの文字は対応する ASCII の値に配置されます。
次に示すプラグマがサポートされています。詳細は、「プラグマ」を参照してください。
align <整数> (<変数>[,<変数>])
does_not_read_global_data (<関数>[,<関数>])
does_not_return (<関数>[,<関数>])
does_not_write_global_data (<関数>[,<関数>])
error_messages (on|off|default, <タグ>... <タグ>)
fini (<関数 1>[, <関数 2>..., <関数 n>])
ident (<文字列>)
init (<関数 1>[, <関数 2>..., <関数 n>])
inline (<関数>[,<関数>])
int_to_unsigned (<関数>)
MP serial_loop
MP serial_loop_nested
MP taskloop
no_inline (<関数>[,<関数>])
nomemorydepend
no_side_effect (<関数>)
opt_level (<関数>[,<関数>])
pack(n)
pipeloop(n)
rarely_called (<関数>[,<関数>])
redefine_extname <旧外部参照名> <新外部参照名>
returns_new_memory (<関数>[,<関数>])
unknown_control_flow (<名前>[,<名前>]...)
unroll (<展開関数>)
weak (<シンボル 1> [=< シンボル 2>])
これらのマクロは常に使用できます。