C語言中文網 目錄
首頁 > 編程筆記 > C語言筆記 閱讀:3,630

C語言源代碼字符集和運行字符集

編譯器轉換程序源代碼時,所處的環境稱為翻譯環境(translation environment);編譯后程序執行時,所處的環境稱為運行環境(execution environment)。

C語言來說,翻譯環境和運行環境是不同的。因此,C語言定義了兩個字符集(character set):源代碼字符集與運行字符集。
  • 源代碼字符集(source character set)是用于組成C源代碼的字符集合;
  • 而運行字符集(execution character set)是可以被執行程序解釋的字符集合。

在許多C語言的實現版本中,這兩個字符集是一樣的。如果不一樣,則編譯器會把源代碼中的字符常量和字符串字面量轉換成運行字符集中的對應元素。

這兩種字符集都包含基本字符集(basic character set)和擴展字符(extended character),C語言沒有指定擴展字符,這通常由本地語言所決定。擴展字符加上基本字符集,組成擴展字符集(extended character set)。

基本源代碼字符集和基本運行字符集都包含了下面的字符類型:
1) 拉丁字母

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

2) 十進制阿拉伯數字

0 1 2 3 4 5 6 7 8 9

3) 下面29個符號

! " # % & ' () * + , -. / :; < = > ? [ \ ] ^ _ { | } ~

4) 5種空白符

空格、水平制表符、垂直制表符、換行、換頁

5) 基本運行字符集還包括四個不可打印的字符:

null字符(用做字符串終止符)、警報(alert)、退格(backspace)、回車(carriage return)

為了在字母和字符串中表示這些字符,輸入反斜杠\加對應的轉義序列(escape sequence)即可,例如,\0表示 null 字符(空字符),\a表示警報,\b表示退格,而\r表示回車。

不同的C實現版本中,字符實際對應的數值(字符碼)可能不同。C語言本身僅規定了以下規則:
  • 基本字符集中的每個字符必須用一個字節(byte)表示。
  • 空字符是一個字節,其所有的位(bit)都是0。
  • 0 之后的每個十進制數字,編碼都要依次比前者大 1。

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo