亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

C語言

C語言的BYTE和char字符

時(shí)間:2024-09-22 17:09:37 C語言 我要投稿

C語言的BYTE和char字符

  在C語言中,字符(character)這個(gè)術(shù)語具有兩個(gè)層次上的含義:書寫源程序的字符和程序處理的字符以下是小編為大家搜索整理的C語言中的BYTE和char字符,希望能給大家?guī)韼椭?更多相關(guān)信息請(qǐng)關(guān)注相關(guān)欄目!

  例如,在下面的源程序中“""”之內(nèi)的“你”、“好”、“,”、“C”、“!”、“ ”就屬于程序要處理的字符。

  [cpp] view plaincopy

  #include

  int main(void)

  {

  printf("你好,C! ");

  return 0;

  }

  該源程序中的其他字符則屬于書寫源程序的字符,這其中也可能包含并沒有明顯顯示出來的字符,例如空格字符(space character)、水平制表符(horizontal tab)、垂直制表符(vertical tab)和換頁符(form feed)。

  從某種意義上來說,編輯/編譯器是一種接受字符輸入,輸出可執(zhí)行文件的軟件,由它產(chǎn)生可執(zhí)行文件經(jīng)過加載成為內(nèi)存中的程序,這個(gè)程序通常也不可避免地要處理字符。

  編輯/編譯器與它生產(chǎn)出的應(yīng)用程序并不一定運(yùn)行在同一個(gè)環(huán)境中,這就意味著兩者可能要各自處理不同的字符集合。

  編輯/編譯器所要處理的字符就是書寫C語言源程序所用的字符,這種字符的集合叫源字符集(sourcecharacter set)。而應(yīng)用程序要處理的字符所構(gòu)成的集合叫執(zhí)行字符集(execution character set)。

  對(duì)于多數(shù)C語言學(xué)習(xí)者來說,由于編輯/編譯環(huán)境與應(yīng)用程序運(yùn)行環(huán)境是重合的,可能意識(shí)不到源字符集與執(zhí)行字符集之間的區(qū)別。

  源字符集(source character set)

  源字符集中的字符就是編寫C語言源程序的字符,也就是C語言要求編輯/編譯器所運(yùn)行的環(huán)境所提供的字符。這套字符由這幾部分組成:基本字符集(basic character set)、表示換行的字符(new-line character)和擴(kuò)展字符(extended characters)。

  基本字符集(basic character set)包括:

  A B C D E F G H I J K L M

  N O P Q R S T U V W X Y Z

  a b c d e f g h i j k l m

  n o p q r s t u v w x y z

  0 1 2 3 4 5 6 7 8 9

  ! " # % & ( ) * + , - . / :

  ; < = > ? [ ] ^ _ { | } ~

  空格(space character)

  控制符:horizontal tab, vertical tab, form feed

  一共是95個(gè)。這就是C語言對(duì)編輯/編譯器運(yùn)行環(huán)境的最基本的要求,言外之意就是只要編輯/編譯器所運(yùn)行環(huán)境提供這95個(gè)字符就可以編寫C語言程序了。事實(shí)上C語言源程序也“主要”地由這95個(gè)字符組成。

  此外,C語言還要求在編輯/編譯器運(yùn)行的環(huán)境中,0~9這十個(gè)字符的編號(hào)(編碼)必須是連續(xù)的。

  遺憾的是,有些環(huán)境無法全部提供這95個(gè)字符。例如,據(jù)說有些國家的鍵盤上壓根就沒有“[”這個(gè)鍵。

  由于存在這種情況,所以C語言也容許用所謂的三字符序列(trigraph)來表示那些環(huán)境不提供的字符。比如用“??<”表示“{”,用“??>”表示“}”。下面的代碼盡管看起來有些怪異,然而依然是合法的C程序。

  [cpp] view plaincopy

  #include

  int main(void)

  ??<

  printf("你好,C! ");

  return 0;

  ??>

  編譯器也可以對(duì)基本字符集自行進(jìn)行擴(kuò)展,這就是所謂的擴(kuò)展字符(extended characters)。前面代碼中的“你”、“好”就屬于擴(kuò)展字符。這些擴(kuò)展字符只能出現(xiàn)在標(biāo)識(shí)符、字符常量、字符串字面量、頭名(header name)、注釋以及某些預(yù)處理單詞(preprocessing token that is never converted to a token)中。代碼的其他其他部分出現(xiàn)擴(kuò)展字符則是一種未定義行為。

  擴(kuò)展字符的值是由具體的編譯器定義的。源程序可以使用的所有字符的集合叫做擴(kuò)展字符集(extended character set)。

  執(zhí)行字符集

  應(yīng)用程序運(yùn)行的環(huán)境中的字符集(the execution character set)也是一種擴(kuò)展字符集(extended character set)。

  其中也必須包括前面提到的源字符集中的那95個(gè)基本字符集

【C語言的BYTE和char字符】相關(guān)文章:

C語言中的BYTE和char字符08-06

C語言中的字符(char)09-24

c語言中char的用法簡介09-29

C語言字符型數(shù)據(jù)09-23

C語言字符串07-24

C語言的字符集05-17

詳解c語言字符數(shù)組與字符串的使用09-19

C語言字符數(shù)據(jù)的合法形式10-17

C語言的字符集有哪些10-03

C語言字符串操作講解08-03