通用字元名
c也支援通用字元名來使用擴充套件字符集,使用通用字元名,你可以指定任何擴充套件字元,它的
unicode
值如下形式:
/u***x
或者:/u******xx
其中,***x
或******xx為16
進製的unicode
指標符號,使用小寫字母
u做為字首,後面為四個十六進製制數字,或者大寫字母
u,後面為
8個十六進製制數字
. 如果前四個十六進製制數字為
0,則也可以寫作
/u***x
或者/u0000***x
。通用字元名可以用來表示識別符號、字元常量、字串,但是,不能用來表示基本字符集中的字元。
當你使用通用字元名來表示乙個字元,編譯器將它儲存在字符集中,以便執行時使用。例如,如果執行時字符集在乙個本地化程式中是
iso 8859-7 (8-bit greek)
,則下面的的變數
alpha
使用/xe1
初始化。
char alpha = 『/u03b1』
然而如果執行時字符集為
utf-16,
需要定義乙個寬字元變數:
wchar_t alpha = 『/u03b1』
在這種情況下,
alpha
的值為十六進製制
3b1,
與通用字元名相同。注:
不是所用編譯器都支援通用字元名
1.5.3
兩字母詞和三字母詞
c為標點符號提供了一種可選擇的表示,因為標點符號並不是所有鍵盤上均可用,
6個兩位元組,或
2個字元記號,如下
table 1-1.
table 1-1
兩字母詞
兩字母詞
等價表示
<:
[:>
]<%%;#
%;%;
##如果這些序列出現在字元常量或字串中,它們將不被認為是兩字母詞,在其他位置,它們的行為的確與單字元符號相同,例如,下面的**段完全有等價,產生相同的輸出。
兩字母:
非兩字母:
輸出: c
也提供三字母詞,即使用三個字元表示,它們均以兩個問號開始,第三個字元決定三字母詞所表示的標點符號,見
table 1-2
.table 1-2
.三字母詞
??([??)
]??<
??=#
??//
??!|
??』^
??-~
三字母詞允許僅使用
iso/iec 646
中定義的字元來寫任何
c語言程式,
1991
年的標準符合7位的
ascii
,在編譯的第一階段,預編譯器使用三個單獨的等價字元替換三字母詞。這也是就是說,不同與兩字母詞,三字母詞在任何時候均可以被三個等價的單字元替代,包括中字元常量、字串、注釋和預處理語句中,例如,預處理器解釋以下三字母詞:
預處理器的輸出如下:
如果你想使用三個字元中的乙個,而不想被解釋為三字母詞,可以按以下方式書寫:
C核心技術手冊(二)
組成c 程式的 積木 叫做函式,每個函式都有自己的用途,並且可以相互呼叫。每個函式包含可被執行的語句,而這些語句可以分組,從而形成語句塊。做為程式設計師,你可以直接使用 c標準庫的的函式,也可以自己編寫函式來實現既定目的。除此之外,還有很多專用的庫可以使用,例如圖形函式庫。然而,使用這些非標準庫,會...
C核心技術手冊(四)
在原始碼中應該使用注釋來說明程式,在 c語言中,有兩種插入注釋的方法 塊注釋使用 表示 開始,表示結束 行注釋使用 開始,直到此行結尾。你可以使用分割符 和 在一行中開始和結束注釋,並可以巢狀注釋在多行中,例如,在下面的函式原型中,省略號 表示 open 函式有第三個可選引數,注釋解釋此引數的使用方...
C核心技術手冊(八)
識別符號是指 c程式中的變數 函式 巨集 結構和其他物件的名稱,識別符號可以包括下面的字元 l基本字符集中的字母 a z 和a z,識別符號是大小寫敏感的 l下劃線字元,l數字,0 9,但首字元不能為數字 l通用字元用來表示其他語言中的字母和數字 被允許的通用字元定義在 c標準的附錄 d中,與 is...