第一章:C语言基础
1.1C语言程序结构
函数定义,全局声明和预处理命令组成了C语言程序
1.1.1 关于链接库:
C语言链接库除标准库外,还有许多特殊链接库可以使用,例如图形函数链接库。
如果使用非标准库,会限制所开发程序的可移植性。这些程序只能移植到已经加载了这些非标准库的系统上
1.1.2关于预处理命令
函数中调用的每个函数需要在该函数前声明,预处理命令#include<.h>指示编译器的预处理器将该头文件内容插入到源代码中,以达到声明头文件中函数的目的。
预处理命令每条需独占一行,且#前只能有空格符或制表符,不可有其它字符(若想换行可在前一行最后加反斜线)
1.1.3关于函数
C语言由函数组成,一个函数可以调用其他函数。函数的定义不能嵌套在另一个函数内(也就是说函数内可以定义局部变量,但是不能定义局部函数)
1.2源代码文件
1.2.1模块化
C语言支持模块化,也就是将一个程序组织成多个源代码文件和头文件,然后分别编译他们
对于一个包含多个源文件的程序,可利用头文件来存储函数的声明、全局变量、宏与常量。并通过引用头文件来间接声明它们。
1.2.2编译单元与标记
每个C源代码文件连同被包含在其中的头文件,构成一个翻译单元。
编译器按次序处理编译单元的内容,把源代码转换成标记。标记是最小的语义单元,如变量名称与运算符
1.3注释
预处理器仅通过检查注释的结束符来判定注释结束,因此不能嵌套块注释。若想注释包含块注释的代码,可使用条件预处理命令,例:
#if 0 /*如果true则执行之间的代码,false直接跳过 0代表false)
int a = 5; /*定义a*/
printf("%d\n", a); /*输出a*/
#endif
预处理会把每个注释都替换成一个空格
1.4环境
编译器转换程序源代码时,所处环境称为编译环境
编译后程序执行,所处环境称为运行环境
1.5字符集
C语言定义了两个字符集:源代码字符集和运行字符集。源代码字符集用于组成源码,运行字符集是可以被执行程序解释的字符集
在许多C语言实现版本中,两个字符集相同。若不同,则编译器会把源代码中的字符常量和字符串字面量转换成运行字符集中对应的元素
1.5.1宽字符和多字节字符
为兼容全球的所有语言,有些字符需要超过一个字节来编码。因此出现了两种表示大型字符集的标准化方法:
宽字符:该字符集内,每个字符使用相同的位长
多字节字符:每个字符可以采用一个或多个字节表示,通过它所在字符串或流的上下文,来确定字符值
1.5.2双字符组和三字符组
有些符号在键盘无法输入,可采用一些等效方法实现。例如双字符组和三字符组。
例如:<: 等价为 [
%> 等价为 }
??< 等价为{ 等等
1.5.3通用符和标识符
通用符即Unicode值,格式为\uXXXX或\UXXXXXXXX (X为16进制数),可用于标识符、字符常量、字符串字面量。
标识符用于引用变量、函数、宏、结构以及其他定义的对象
如果有写的不对或者不全面的地方 可通过主页的联系方式进行指正,谢谢