欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c語言怎么設(shè)置多字符集

林國瑞2年前35瀏覽0評論

c語言怎么設(shè)置多字符集?

Unicode或者寬字符都沒有改變char數(shù)據(jù)型態(tài)在C中的含義。char繼續(xù)表示1個字節(jié)的儲存空間,sizeof (char)繼續(xù)返回1。理論上,C中1個字節(jié)可比8位長,但對我們大多數(shù)人來說,1個字節(jié)(也就是1個char)是8位寬。 C中的寬字符基于wchar_t數(shù)據(jù)型態(tài),它在幾個表頭文件包括WCHAR.H中都有定義,像這樣:

typedef unsigned short wchar_t ; 因此,wchar_t數(shù)據(jù)型態(tài)與無符號短整數(shù)型態(tài)相同,都是16位寬。 要定義包含一個寬字符的變量,可使用下面的語句:

wchar_t c = 'A' ; 變量c是一個雙字節(jié)值0x0041,是Unicode表示的字母A。(然而,因為Intel微處理器從最小的字節(jié)開始儲存多字節(jié)數(shù)值,該字節(jié)實際上是以0x41、0x00的順序保存在內(nèi)存中。如果檢查Unicode文字的計算機儲存應(yīng)注意這一點。)

您還可定義指向?qū)捵址闹羔槪?/p>

wchar_t * p = L"Hello!" ; 注意緊接在第一個引號前面的大寫字母L(代表「long」)。

這將告訴編譯器該字符串按寬字符保存-即每個字符占用2個字節(jié)。通常,指針變量p要占用4個字節(jié),而字符串變量需要14個字節(jié)-每個字符需要2個字節(jié),末尾的0還需要2個字節(jié)。

同樣,您還可以用下面的語句定義寬字符數(shù)組:

static wchar_t a[] = L"Hello!" ; 該字符串也需要14個字節(jié)的儲存空間,sizeof (a) 將返回14。索引數(shù)組a可得到單獨的字符。a[1] 的值是寬字符「e」,或者0x0065。 雖然看上去更像一個印刷符號,但第一個引號前面的L非常重要,并且在兩個符號之間必須沒有空格。只有帶有L,編譯器才知道您需要將字符串存為每個字符2字節(jié)。

稍后,當(dāng)我們看到使用寬字符串而不是變量定義時,您還會遇到第一個引號前面的L。幸運的是,如果忘記了包含L,C編譯器通常會給提出警告或錯誤信息。

您還可在單個字符文字前面使用L前綴,來表示它們應(yīng)解釋為寬字符。如下所示:

wchar_t c = L'A' ; 但通常這是不必要的,C編譯器會對該字符進行擴充,使它成為寬字符。