在步入工作岗位之后,重新对编程是个什么过程进行了了解
简单的来说,我们平常所写的代码经过编译和链接之后生成可执行文件,下面就编译和链接两个过程分别讨论
编译阶段
编译阶段需要的素材就是你的源文件,把源文件经过一系列神奇的编译操作变成目标文件就是我们的目的,也就是linux系统下使用gcc -o得到的目标文件
预处理简单来说就是宏的展开和头文件的包含,把#include的东西全都复制进去,把文件变大,但是语言本质并没有改变,也就是说你的C还是原来的C
编程语言到汇编语言就是编译器做的工作了,一个好的编译器在这里会下很大的功夫。
可以这么理解,汇编语言和机器语言基本是等价的,区别只不过是汇编语言还是给人看的,机器语言已经不是给人看的了是给机器看的(当然你要是精通机器语言也是吼的),为什么这么说?每一条汇编语言都有机器语言去对应,每一个汇编命令都是遗传二进制码
编译的结果是生成目标文件,每一个编译单元生成对应的一个目标文件,这里还是可以参考linux系统下的gcc -c,使用这条命令的时候会把每个.c文件的文件名拿来直接生成对应的.o文件(就是helloworld.c->helloworld.o)
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26