程序

来源:互联网 发布:java mvc模式 编辑:程序博客网 时间:2024/04/26 18:50

恍恍惚惚也写了两三年程序了,貌似现在突然发现。。。。学这玩意。。。。给学了七八年估计才能有所小成。一开始学校最初学的是C。。。C。。不是C++(这个概念对于初学者来说很重要,不过说实在的,从C99以后。。。。C和C++之间的区别。。。也没原来那么差异了,只剩下思维上一个面向过程,一个面向对象罢了)。话说C是一门不错的语言,追述一下C的历史,C的源于B语言,但真正追述到这种思维的源头是一种名叫ALGOL(仙女星座一个恒星)的语言,在70年代的时候比较风靡。。。。如果见过ALGOL程序的人会发现。。。这更像PASCAL,其实C语言很多的语法和PASCAL基本没有太大的区别,最大的优点也是最大的缺点就是指针。曾经有位仁兄说编程在乎什么,首要就是在于存储,汇编好在什么,省!能用汇编写东西真省。。。。而且还能追述错误,所以基本单片机之类的初始化程序都比较建议汇编语言。而C在某种程度上最简单提供了MALLOC这个函数来自动分配RAM,其实C也可以直接来操作内存的,这里不展开说(其实我觉得也没意义)。指针让程序员可能调用到底层的资源,C++也是好在这里,到了JAVA。。。出了一个新的概念,引用变量(这个东西在C++里面出现过。。。不过感觉。。。JAVA体现的更完全),引用变量简单地说就是指针,它指向一个对象,不过和C相比,C指的是地址,JAVA中间指的是对象,所以JAVA的垃圾回收只能通过建议回收的机制,不能像C一样强行回收。。。,这点在电脑PC上面没有什么体现,不过对于一些低端的ARM芯片。。JAME平台就不如一些UCOS之类的系统了,资源毕竟是有限的。C的第二个有点,完备了浮点型的计算。。。。相信没什么人会去用汇编语言去写浮点型的计算吧。。。。至少。。。我写的很悲剧,大致解释下浮点型的数,以FLOAT为例,FLOAT4个字节,32位,这三十二位被分为=符号位(1)+指数位(8)+有理数位(23),计算是通过pow(-1,s)*1.f*pow(2,e-127)这个算式来进行计算的,转换成汇编看看就知道,一个浮点可能要提供几十条语句的汇编来编译,所以这证明了一点,除了通过查表,51是做不了标准的PID算法的。至于C。。。有点比较特别点的地方,只有用纯C的编译器才可能发现,其实INT C里面是可以放字符型甚至是字符串的。。。如果你要问这个有什么用。。。省!。。。省RAM。。毕竟C很大程度上都是给嵌入式平台用的。。。。还是给省,不过在C++平台下面这点是完全不允许的。C99和C89(虽然过时了,但是貌似谭浩强先生,希望能看到更新版以后你的书),C89和C99区别有不少,不过底层区别有点比较重要,算符的优先级顺序变了。想要证明这点很简单int b=0;b=(++b)+(++b)+(++b);这个算式,在C89和C99编译器下的结果是不同的。标准变化了,同时C99提供了很多简便的算符,通过ISO646.H这个头文件。。。你可以把C写的很想PASCAL。。。你还可以用三元符号来表示一些+-之类的。。。那会让你的程序变成一幅美丽的图画~~~飘。至于预编译,这条在很多语言上都不曾有过,可以算是C和C++的专利吧,说实在,很实用。。。在面向过程的思考里,一切都应该是按照顺序结构来思考的,所以很多东西通过预编译都能起到节约的作用,有时候还能抓错。同时,C还是比较轻松的完成shell编程的,更高级的语言就比较难做到。总论,学了几年了,C是一个非常好的语言,同时JAVA,C#,PEAL,LOGO之类的也挺好,还有硬件平台下的语言,偏C的Verilog HDL和偏Ada的VHDL。。。这两种比较推荐前者,后者太繁琐,规则太多了。脚本语言。。。这个东西现在很强大。。。。还有就是亲爱的object c,偶终于能用你写个HELLO WORLD了。。语言貌似N多,理解OOP思想之后会发现学起来也挺快的。。。继续读书咯 

原创粉丝点击