因为工作的需要,开始学习C语言和嵌入式开发,新起点
c语言的运行机制
可以大致分为四部
1)编辑:编写.c文件,即源代码
2)编译:将.c程序翻译成目标文件(.obj文件,此文件在计算机底层执行,不可直接运行)
3)链接:将目标文件+库文件一起链接(link)成可执行文件(.exe文件,此文件在计算机底层执行)
4)运行:执行.exe文件
什么是编译
有了C源文件,通过编译器将其编译成obj文件
如果程序没有发生错误,没有任何提示,但在debug目录下会出现一个.obj文件
什么是链接
有了目标文件,通过链接程序将其和运行需要的c库文件(这里就像是python里面的库)链接成exe文件。
若程序没有错误,没有任何提示,但在debug目录下会出现一个项目.exe文件
为什么要链接呢
因为c程序中会使用c程序库中的函数,这些函数不是程序员自己写的,而是c程序库中提高的因此需要链接,并且链接后的exe文件,比obj文件大许多
变量
变量相当于内存中一个数据存储的空间的表示,c语言中同一变量的操作是在同一内存进行修改,而在python中万物皆对象则是地址引用的变化
int a = 1 //a ----> [1]
a = 2 //此时在同一地址上操作即 a----->[2],1将被2替换
a = 1 # a指向的是1所在的地址(对象引用)
a = 2 # a将指向2的地址空间,此时1的地址空间还存在
1.变量必须要先声明再使用,不然会报错
2. 变量在一个作用域内可以在同一类型范围内变化
3.变量在同一作用域内不能重复命名
变量的三要素,地址,值和类型
变量的数据类型
每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(用字节表示)
- 基本类型
(1)数值型 : 整型, 浮点型
(2)字符型 char - 构造类型
(1)数组
(2)结构体 struct
(3)枚举类型 enum - 指针类型
- 空类型void