ANSIについての奇妙なトライグラフシーケンスのことc
質問
使用する当初の理由は何でしたか トライグラフシーケンス ansi cのような他のcharになるためのいくつかのcharの:
??=define arraycheck(a, b) a??(b??) ??!??! b??(a??)
なります
#define arraycheck(a, b) a[b] || b[a]
解決
短い答え:そのようなグラフが含まれていないキーボード/文字エンコーディング。
ウィキペディアから:
Cプログラミング言語の基本文字セットは、ISO 646 Invariant Characterセットの外側にある9文字を含むASCII文字セットのスーパーセットです。これは、使用されているキーボードがこれらの9文字のいずれもサポートしていない場合にソースコードを作成するための問題を引き起こす可能性があります。 ANSI C委員会は、ISO 646文字セットのあらゆるバージョンをサポートするキーボードを使用して、ソースコードを入力する方法としてトリグラフを発明しました。
他のヒント
いくつかの古いキーボードには特定の文字がなかったため、代わりにトライグラフを使用できるように言語が回避されました。
所属していません StackOverflow