C核心技術手冊(七)

2021-05-23 17:48:49 字數 1584 閱讀 5314

通用字元名

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...