C语言概述(.bin和.hex区别)_学习笔记一

一、C语言发展史

C语言概述(.bin和.hex区别)_学习笔记一_第1张图片

二、C语言的特点

C语言概述(.bin和.hex区别)_学习笔记一_第2张图片

三、C语言标准

C语言概述(.bin和.hex区别)_学习笔记一_第3张图片

四、编程机制

C语言概述(.bin和.hex区别)_学习笔记一_第4张图片
头文件.h 源文件.c
1、预处理
将所有的#include头文件以及宏定义替换成其真正的内容,依然是是文本文件,使用预处理器cpp来完成
gcc -E -I./inc test.c -o test.i
or $ cpp test.c -I./inc -o test.i
这一过程 test .c 文件变成 test.i 文件。

(-E是让编译器在预处理之后就退出,不进行后续编译过程;-I指定头文件目录,这里指定的是我们自定义的头文件目录;-o指定输出文件名)

2、编译:
将经过预处理之后的程序转换成特定汇编代码(assembly code)的过程。
$ gcc -S -I./inc test.c -o test.s
这一过程 test .c 文件变成 test.s文件。

-S让编译器在编译之后停止,不进行后续过程

3、汇编
汇编过程将上一步的汇编代码转换成机器码(machine code),这一步产生的文件叫做目标文件,是二进制格式。gcc汇编过程通过as命令完成。
$ as test.s -o test.o
or gcc -c test.s -o test.o
这一步会为每一个源文件产生一个目标文件。mymath.c也需要产生一个mymath.o文件

4、链接
链接过程将多个目标文以及所需的库文件(.so等)链接成最终的可执行文件.exe
$ ld -o test.out test.o inc/mymath.o …libraries…

.bin和.hex区别

.bin文件只包括数据本身,不包含地址信息,它的大小是数据的实际大小。在烧录时一定要指定地址信息。

.hex文件包括地址信息,它的大小并不是数据实际大小,原因有二:一是.hex文件是用ASCII来表示数据的,二是.hex文件本身还包括别的附加信息。

参考学习来源:
C技能树

与优秀的人为伍,不畏得失,做有趣的事。
相互成就,日益精进,终成正果。

你可能感兴趣的:(c语言笔记,公开课,c语言,学习,开发语言)