在C语言中,字符character这个术语具有两个层次上的含义:书写源程序的字符和程序处理的字符以下是小编为大家搜索整理的C语言中的BYTE和char字符,希望能给大家带来帮助!更多相关信息请关注下面是小编为大家整理的2023年C语言BYTE和char字符(完整文档),供大家参考。
在C语言中,字符character这个术语具有两个层次上的含义:书写源程序的字符和程序处理的字符以下是小编为大家搜索整理的C语言中的BYTE和char字符,希望能给大家带来帮助!更多相关信息请关注相关栏目!
例如,在下面的源程序中“""”之内的“你”、“好”、“,”、“C”、“!”、“”就属于程序要处理的字符。
[cpp] view plaincopy
#include
int mainvoid
printf"你好,C!";
return 0;
该源程序中的其他字符则属于书写源程序的字符,这其中也可能包含并没有明显显示出来的字符,例如空格字符space character、水平制表符horizontal tab、垂直制表符vertical tab和换页符form feed。
从某种意义上来说,编辑/编译器是一种接受字符输入,输出可执行文件的软件,由它产生可执行文件经过加载成为内存中的程序,这个程序通常也不可避免地要处理字符。
编辑/编译器与它生产出的应用程序并不一定运行在同一个环境中,这就意味着两者可能要各自处理不同的字符集合。
编辑/编译器所要处理的字符就是书写C语言源程序所用的字符,这种字符的集合叫源字符集sourcecharacter set。而应用程序要处理的字符所构成的集合叫执行字符集execution character set。
对于多数C语言学习者来说,由于编辑/编译环境与应用程序运行环境是重合的,可能意识不到源字符集与执行字符集之间的区别。
源字符集source character set
源字符集中的字符就是编写C语言源程序的字符,也就是C语言要求编辑/编译器所运行的环境所提供的字符。这套字符由这几部分组成:基本字符集basic character set、表示换行的字符new-line character和扩展字符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个。这就是C语言对编辑/编译器运行环境的最基本的要求,言外之意就是只要编辑/编译器所运行环境提供这95个字符就可以编写C语言程序了。事实上C语言源程序也“主要”地由这95个字符组成。
此外,C语言还要求在编辑/编译器运行的环境中,0~9这十个字符的编号编码必须是连续的。
遗憾的是,有些环境无法全部提供这95个字符。例如,据说有些国家的键盘上压根就没有“[”这个键。
由于存在这种情况,所以C语言也容许用所谓的三字符序列trigraph来表示那些环境不提供的字符。比如用“??<”表示“”,用“??>”表示“”。下面的代码尽管看起来有些怪异,然而依然是合法的C程序。
[cpp] view plaincopy
#include
int mainvoid
??<
printf"你好,C!";
return 0;
??>
编译器也可以对基本字符集自行进行扩展,这就是所谓的扩展字符extended characters。前面代码中的“你”、“好”就属于扩展字符。这些扩展字符只能出现在标识符、字符常量、字符串字面量、头名header name、注释以及某些预处理单词preprocessing token that is never converted to a token中。代码的其他其他部分出现扩展字符则是一种未定义行为。
扩展字符的值是由具体的编译器定义的。源程序可以使用的所有字符的集合叫做扩展字符集extended character set。
执行字符集
应用程序运行的环境中的字符集the execution character set也是一种扩展字符集extended character set。
其中也必须包括前面提到的源字符集中的那95个基本字符集
推荐访问:字符 语言 BYTE C语言BYTE和char字符 c语言的byte和char字符 c语言byte和char的区别