三合
符號 [ ] { } ^ \ | ~ # 經常用於 C 程式,但在 20 世紀 80 年代後期,使用了程式碼集(例如,在斯堪的納維亞國家的 ISO 646 變體),其中 ASCII 字元位置用於國家語言變體字元(例如£代表英國的 #; Æ Å æ å ø Ø代表丹麥的 { } { } | \; EBCDIC 中沒有~)。這意味著很難在使用這些集合的機器上編寫 C 程式碼。
為了解決這個問題,C 標準建議使用三個字元的組合來產生一個稱為三字元的單個字元。三字母是三個字元的序列,前兩個是問號。
以下是使用三字元序列而不是 #,{ 和 } 的簡單示例:
??=include <stdio.h>
int main()
??<
printf("Hello World!\n");
??>
這將由 C 前處理器通過將三字元替換為單字元等效項來更改,就像程式碼已寫入一樣:
#include <stdio.h>
int main()
{
printf("Hello World!\n");
}
| 三字母組合 | 當量 |
|---|---|
| ‘= | # |
| ?? / | \ |
| ??” | ^ |
| ??( | [ |
| ??) | ] |
| ??! | |
| ?? < | { |
| ??> | } |
| ?? - | 〜 |
請注意,三字元是有問題的,因為,例如,??/是反斜槓並且可以影響註釋中連續行的含義,並且必須在字串和字元文字內部被識別(例如,'??/??/'是單個字元,反斜槓)。