C 语言规定了两组字符集及相关有序排列,包括:
- 源代码字符集 - 用于编写源文件
- 执行字符集 - 用于执行环境中的解释
以上两组字符集又可细分为基础字符集和扩展字符,两者合称为扩展字符集。
在字符常量或字符串字面值中,执行字符集中的字符用源代码字符集的相应字符或者由反斜线加上一或多个字符组成的转义序列表示。所有位都是 0 的字节被称为空字符(null character),它在基础执行字符集中必须存在,用于终止字符串。
无论是源代码字符集还是执行字符集,其中的基础字符集均由以下几部分组成,并且每个字符都只占用一个字节。
- 26 个大写拉丁字母
- 26 个小写拉丁字母
- 10 个十进制数字
- 29 个图形字符
- 空格和控制字符(水平制表符、垂直制表符、换页)
对于十进制数字,每个字符的值都比前一个字符的值大一。在源码文件中,规定用单个换行符表示文本行的结束。在执行基础字符集中,还有表示响铃(alert)、退格(backspace)、回车(carriage return)和换行(new line)的控制字符。如果在源文件中出现了任何其它字符(出现在标识符、字符常量、字符串字面值、头文件名、注释或未使用的预处理标记中除外),该行为是未定义的。