三合
符號 [ ] { } ^ \ | ~ #
經常用於 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");
}
三字母組合 | 當量 |
---|---|
‘= | # |
?? / | \ |
??” | ^ |
??( | [ |
??) | ] |
??! | |
?? < | { |
??> | } |
?? - | 〜 |
請注意,三字元是有問題的,因為,例如,??/
是反斜槓並且可以影響註釋中連續行的含義,並且必須在字串和字元文字內部被識別(例如,'??/??/'
是單個字元,反斜槓)。