ISO/ANSI C 標準の定義に従って文字表記シーケンスの認識を有効または無効にします。
コンパイラが文字表記シーケンスとして解釈している疑問符 (?) の入ったリテラル文字列がソースコードにある場合は、-xtrigraph=no サブオプションを使用して文字表記シーケンスの認識をオフにすることができます。
-xtrigraphs には、次のいずれかを指定します。
表 A–52 -xtrigraphs の値
値 |
意味 |
---|---|
yes |
コンパイル単位全体の 3 文字表記の認識を有効にします。 |
no |
コンパイル単位全体の 3 文字表記の認識を無効にします。 |
コマンド行に -xtrigraphs オプションを指定しなかった場合、コンパイラは -xtrigraphs=yes を使用します。
-xtrigraphs だけを指定すると、コンパイラは -xtrigraphs=yes を使用しま す。
trigraphs_demo.cc という名前のソースファイル例を考えてみましょう。
#include <stdio.h> int main () { (void) printf("(\?\?) in a string appears as (??)\n"); return 0; } |
このコードに -xtrigraphs=yes を指定してコンパイルした場合の出力は、次のとおりです。
example% CC -xtrigraphs=yes trigraphs_demo.cc example% a.out (??) in a string appears as (] |
このコードに -xtrigraphs=no を指定してコンパイルした場合の出力は、次のとおりです。
example% CC -xtrigraphs=no trigraphs_demo.cc example% a.out (??) in a string appears as (??) |
3 文字表記については、『C ユーザーズガイド』の ANSI/ISO C への移行に関する章を参照してください。