(1)“我的程序都是对的,可结果不对”
(2)“程序=算法+数据结构” 【程序编程相关:磁盘阵列海量存储方案】想想你的周围,是不是也有人说这样的话?如果你也曾经说过,那就此打住,不要再说这句话,因为这句话只会显示说话者的无知.既然程序都是对的,那为什么结果不对? 【推荐阅读:NAS海量存储解决方案】
程序 = 对象+ 消息 【扩展信息:固态驱动器访问存储的速度是否更快一些?】
如果刚刚学完c语言,我们说这样的话,完全可以理解,而且可以说是正确的.但是如果你是一位即将从事c/c++编程的程序员,那么很遗憾,这个说法只能判错,殊不知,世界上还有另一种说法:
“程序=算法+数据结构”只对面向过程的语言(c)成立,而对面向对象的语言(c++),则只能表述为“程序=对象+消息”.传统的过程式编程语言以过程为中心以算法为驱动,面向对象的编程语言则以对象为中心以消息为驱动.这里的消息是广义的,对象a调用了对象b的成员函数,可看作对象a给b发消息.
(3)“程序编出来,运行正确就行了”运行正确的程序并不一定是好程序,程序员时刻要牢记的一条就是自己写的程序不仅是给自己看的,要让别人也能轻易地看懂.很遗憾,许多的编程新手不能清晰地驾驭软件的结构,对头文件与实现文件的概念含糊不清,写出来的程序可读性很差.
c程序采用模块化的编程思想,需合理地将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求,在模块的划分上主要依据功能.模块由头文件与实现文件组成,对头文件与实现文件的正确使用方法是:规则1 头文件(.h)中是对于该模块接口的声明,接口包括该模块提供给其它模块调用的外部函数及外部全局变量,对这些变量与函数都需在.h中文件中冠以extern关键字声明;
规则2 模块内的函数与全局变量需在.c文件开头冠以static关键字声明;
规则3 永远不要在.h文件中定义变量;
许多程序员对定义变量与声明变量混淆不清,定义变量与声明变量的区别在于定义会产生内存分配的操作,是汇编阶段的概念;而声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外部函数与变量.... 下一页