目录
C语言的编译过程
变量
数据类型
转义字符
作用域
生命周期
常量
类型
C语言的编译过程
预处理,编译,汇编,链接
- 预处理:
头文件展开----------把头文件里的代码放在文件最前面,这样我们就可以使用头文件里已经定义好的功能了, 感觉类似Python的import
宏替换--------------替换#define指定的符号
条件编译-------- ---按条件裁剪代码(好像是在预处理阶段把符合条件的代码留待编译,不符合条件的代码删除 ----在预处理阶段,代码怎么知道符不符合条件呢?不知道)
- 编译
经过一系列分析,将与处理完的问价转成汇编代码
- 汇编
将汇编代码转成CPU可以识别的二进制文件,一条汇编语句对应着一条机器指令
- 链接
解决多个文件间的符号引用问题,把所有目标文件链接到一起,确定最终地址,生成可执行文件
变量
是内存中数据存储区域的表示 = 变量名 + 值 + 数据类型
-
数据类型
-
------数据的解释方式
C语言在定义时必须确定数据类型,所以C语言是强类型的语言
在内存中存放数据必须确定的三件事:数据存在哪里,数据的长度,数据的解释方式
| 基本类型 | char, int, short, long, long long, double, float, signed, unsigned |
| 构造类型 | 数组, struct, union, enum |
| 指针类型 | |
| 空类型 | void |
没有字符串类型,用 char str[] = "123" 来定义字符串
-
转义字符
' " \ a b f n r t v
ddd----1-3位数的八进制数
xdd---两位数的16进制数
转义字符占一个字节,比如"/123" 占一个字节
-
作用域
限定代码可用性的代码范围
全局变量的作用域是整个工程,局部变量的是变量所在的局部范围
-
生命周期
变量从创建到销毁的时间段
常量
是常数,程序运行中不能被改变的量
-
类型
字符常量---'q', 'U', 'n'
实型常量---1,2,3.12
字符串常量-"qwe", "asd"
符号常量----需定义----#define 标识符 常量
const修饰的常变量
枚举常量
' ' ---字符串结束的标志,不计入字符串长度,占一个byte
转义字符占1个byte



