申明:在csdn发这样浅的文章其实很对不起大家。里面其实没有什么有价值的东西。只是我想尝试一下用最浅显的文字来引导最白痴的人。大家看看就算了,不要责难内容了。如果有什么建议,发给[email protected]
第一章 C为何物(进阶)
你已经知道什么是程序,C是用来编写程序。但是那一行由英文字符组成的代码(术语一)是如何指导笨笨的电脑来完成多彩多姿的工作的?
术语一:代码依我来看(错了概不负责),就是用编程语言写的文本内容,通过某种方式成为程序。
首先你要知道电脑到底是如何工作的。CPU应该知道是什么(什么?不知道,这个是计算机文化课的内容耶。不知道也没关系,CPU相当于人的大脑)。CPU的工作就是通过机器语言来完成的。CPU能作加法,给内存的某一位置(不要说又不知道什么是内存,问老师去啦)存放某个值这样的事情,但是作这些能作的事情中的哪些,用什么顺序作就需要人来下达指令。当然这些指令不能是用人类语言,不论是英文还是中文都不行。你叫CPU“加一”不会有任何效果的,“Increase”也是一样。指挥CPU如何工作的是机器码。机器码是数字。一段01000110111可能对于CPU来说就是有意义的指令。具体机器语言成何模样,如何编写你不需要了解(想了解嘛?我看还是学好了C再说吧)。CPU通过读这些数据来知道如何工作,从而完成各种工作。是的,播放DVD什么的本质都是一堆堆的数字(数据)在电脑各处涌动。
用数字来写程序是多么痛苦的一件事情。C这些高级语言(你要说它是中级的就是中级吧,反正不是那些茹毛饮血的低级语言)给程序的编写带来了莫大的便利。从前可能你需要写一大段的数字(机器语言)来给一个值加1,现在只要用一个a=a+1就可以了。熟悉的数学式的表达法以及英文字符的引入使得编写程序变得容易了。但是C写出来的代码对于CPU和计算机来说是无法理解的。就像你用中文给一个不懂中文外国人讲中文,他不会明白你说的是什么。我们的做法有两种,把自己说的话用笔先翻译了,然后给外国人看,或者请一个翻译,你说一句他翻译一句。对于高级语言和机器语言之间,我们也有类似的手段,C采用的是类似笔译的手法,事情把用C写的代码翻译了。而完成这件工作的东西叫做“编译器”,而笔译的过程就是编译。所以说,程序的最终形式还是数字,本质上就是这样的。用什么编程语言写都是形式,最终目的都是要编程CPU可以理解的机器语言。
注释:我为什么不说汇编语言?有必要吗?这里不是要考你计算机发展史。C的编译器的确是直接生成机器语言的(虽然有些版本还是有汇编这个phase)。
本文地址:http://com.8s8s.com/it/it29424.htm