下記のprint文を実行させると文字化けして表示されます。
#include <stdio.h>
int main(int argc, char *argv[])
{
printf(”バグってる??!\n”);
return 0;
}
これは、トライグラフが使用されているからです。print文の中に??!という文字があり、これがトライグラフと判断されるのです。
トライグラフとは2つの?と特定の文字の3文字で1つの文字を表す表記のことです。3文字表記とも呼ばれます。
解決しにくいコンパイルエラーや不具合の元になるので、トライグラフを通常は使用しません。
トライグラフは、下記のようにコンパイルの最初の段階で1つの文字に変換されます。
??= → #
??( → [
??/ → \
??) → ]
??' → ^
??< → {
??! → |
??> → }
??- → ~
#include <stdio.h>
int main(int argc, char *argv[])
{
printf(”バグってる??!\n”);
return 0;
}
これは、トライグラフが使用されているからです。print文の中に??!という文字があり、これがトライグラフと判断されるのです。
トライグラフとは2つの?と特定の文字の3文字で1つの文字を表す表記のことです。3文字表記とも呼ばれます。
解決しにくいコンパイルエラーや不具合の元になるので、トライグラフを通常は使用しません。
トライグラフは、下記のようにコンパイルの最初の段階で1つの文字に変換されます。
??= → #
??( → [
??/ → \
??) → ]
??' → ^
??< → {
??! → |
??> → }
??- → ~