三合

符號 [ ] { } ^ \ | ~ # 經常用於 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");
}
三字母組合 當量
‘= #
?? / \
??” ^
??( [
??) ]
??!
?? < {
??> }
?? -

請注意,三字元是有問題的,因為,例如,??/是反斜槓並且可以影響註釋中連續行的含義,並且必須在字串和字元文字內部被識別(例如,'??/??/'是單個字元,反斜槓)。