字符集
字符是用于组织、控制或者表示数据的元素集成员。C语言存在两套字符集:源字符集(source character set)和执行字符集(execution character set)。源字符集是写入源文件的字符集;执行字符集是执行环境中解释的字符集。这两套字符集又可以进一步分为基本字符集(basic character set)和由0个或者多个特定语言环境成员(该成员称为扩展字符(extended characters),扩展字符不是基本字符集成员。)组成的字符集。基本字符集和扩展字符统称为扩展字符集(extended character set)。
无论基本源字符集还是基本执行字符集,都应包含以下成员:
1、26个大写拉丁字母
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、26个小写拉丁字母
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
3、10个十进制数字
0 1 2 3 4 5 6 7 8 9
4、29个图形字符
! " # % & ' ( ) * + , - . / :
; < = > ? [ \ ] ^ _ { | } ~
5、空格符和控制字符(水平制表符、垂直制表符、换页符。)
无论是源字符集还是执行字符集,基本字符集中的字符都使用一个字节表示;十进制数字列表中每个0后面的字符值应比前一个字符大1。
源文件中应存在某种方式表示每个文本行的末尾;ISO/IEC 9899:2018标准将这样的行尾指示符视为单个换行符。基本执行字符集中应存在表示警告、退格、回车和换行的控制字符。执行字符集的成员值由实现定义。
在字符常量或者字符串字面量中,执行字符集的成员应由源字符集的对应成员或者转义序列来表示。一个字节所有位都为0,称为空字符(null character)。基本执行字符集应包含空字符;空字符用于终止字符串。
如果在源文件中出现其它字符(如果出现在标识符、字符常量、字符串字面量、头文件名、注释或者永远不会转换为标记的预处理标记中除外。),其行为是未定义的。
大小写字母的定义如上所示,ISO/IEC 9899:2018标准并未包含其它字母表中的其它字符。
通用字符名提供了一种命名其它字符的方法。