分享
 
 
 

C/C++每日一课 >> 程序是怎样生成的(2005-04-22)

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

/* C/C++每日一课*/

/*2005-05-14*/

/*来自 虚拟现实论坛 (

http://www.3d-vr.com)*/

/*作者: srj2005*/ 对于初学编程语言的朋友们来说, 可能对于自己写的一行行代码是怎么样变成一个可以执行的程序的感到费解,

看到编译器上面乱七八糟的一堆堆的选项更是望而生畏.

所以预先了解一点程序生成的过程, 对于提高自己的兴趣是很有帮助的.

和人们生活中说出来或者写出来的语言一样, 计算机语言也是一些符号用一定的

规则排列成的一个序列. 对于C语言来说, 符号很简单, 他只包括26个英文字母,数字

和少数其他几个字符, 相信念过高中的朋友都会认识. 而重要的就是这些符号排列的规则了,

也就是我们说的C语言的语法. 这里就不详细说了, 相信你既然来到这里就多多少少已经了解一些了.

好了, 现在说具体一点的, 一般你在上面写C语言代码的那个软件我们称之为C语言的

开发环境, 它除了提供一个方便的界面让你编辑文本以外, 还有两个比较重要的功能:

1. 编译功能. 也就是负责把你写的代码翻译成CPU的执行指令, 这是一个很重要的功能, 我们称它为编译器

2. 连接功能: 负责把这些指令按照一定的格式组织起来, 最终行成一个可以在指定平台(操作系统)下面运行的程序. 我们称为连接器

当我们写好一个程序文件, 也就是写好了一个按照C语言语法规则排列的一个字符序列了. 别看你在写的时候把它排列的整整齐齐,非常美观,其实

其实对于计算机来说是一点都不会欣赏的, 他只是把他当作一个字符序列.

一般写好了程序代码以后, 第一件要做的事情就是编译. 编译的时候编译器逐个读入你写的子符序列, 然后从序列中分离出他认识的词,

在根据这些词预先定义的意思(功能), 翻译成CPU指令. 这个过程是发现程序错误最多的一个过程. 因为很有可能他读的时候读到一个词,

结果发现不认识, 或者预期的下一个单词

没有出现. 这些都导致便宜无法进行下去. 这时候编译器就会把错误反馈给你, 告诉你的程序写的不对.

如果这一步成功了的话, 你写的程序这时候就变成一堆的CPU指令序列了. 也就完成了翻译的工作. 其实这个过程是一个相当复杂的过程, 就不细说了

接下来你的程序是不是就可以执行了呢? 还不可以的. 编译的时候编译器是一个源代码文件(C,CPP文件)为单位进行的.

而你可能为了使你的程序逻辑更鲜明而把代码分别放到几个文件里面去了. 这时候就会产生很多个包含着CPU指令的文件.

还有, 你的程序肯定是要在某一个操作系统上面运行的, 而不同的操作系统也有它自己的一套执行指令

组织的规则. 所以现在程序还是跑不起来的. 而这个任务就要交给连接器来完成了. 连接器负责把多个CPU指令文件

(对于C/C++编译器, 这些指令一般保存在后缀名是.OBJ的文件里面)拼节起来, 然后根据你设置的操作系统平台,

最终生成一个可以执行的文件. 比如在Window下面就是你们熟悉的.exe文件. 到此为止, 开发环境就完成了他所有的史命,让你得到了你想要的东西. 真是累坏它了

因为一般用户其实都不太关心编译和连接这两个步骤, 而只想得到最终可用的程序, 所以现在的开发环境里面一般除了编译和连接的菜单以外,

还有一个 建立(Build)菜单,也就是把这两个步骤连起来做了, 而这也是一般用户用的最多的一个选择.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有