C语言零缺陷编程方法研究

来源 :软件工程师 | 被引量 : 0次 | 上传用户:wudixuejie
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:C语言是一种用途广泛、使用方便的编程语言。但是它也存在着语法检验不够严格等问题。该文章根据软件编程方法并结合C语言的特点创设零缺陷编程方法,以供广大编程爱好者借鉴。
  关键词:C语言;编程规范;零缺陷;测试
  
  C语言简单、易用,是许多编程爱好者的首选语言。但由于C语言的语法不是很严格,许多程序设计者在编程过程中会遇到许多错误,在程序设计方法上,国外有许多学者对程序零缺陷程序设计提出了自已的观点和方法。如美国管理学家philipb。croby的“零缺陷”思想引进来,用以提高编程的质量,增大软件中的验证力度。IBM公司70年代末和80年代初提出的“净室软件工程”(clean room software engineering),“净室”一词源于精密半导体器件中的无尘生产车间,它强调在生产过程中就消除问题,而不是在产品生产以后,才依靠检测来挑选有问题的产品。传统的软件工程建模、形式化方法、程序验证(正确性证明)、以及统计SQA的集成使用已经组合成一种可以导致极高质量软件的技术。净室软件工程(Cleanroom software engineering)是一种在软件开发过程中强调在软件中建立正确性的需要的方法。本文通过建立良好的C语言的编程风格,避免出现常见的错误,并通过净室过程的方法来提高C语言编程的效率。
  
  1 良好的编程风格
  良好的编程风格可以在许多方面帮助开发人员。如果你阅读过 Linux 内核源代码的话,可能会对程序的优美编排所倾倒。良好的编程风格可以增加代码的可读性,并帮助你理清头绪。如果程序非常杂乱,大概看一眼就该让你晕头转向了。编程风格最能体现一个程序员的综合素质。
  许多人可能对 Windows 所推崇的匈牙利命名法很熟悉。这种方法定义了非常复杂的函 数、变量、类型等的命名方法,典型的命名方法是采用大小写混写的方式,对于变量名称,则采用添加前缀的办法来表示其类型,例如:
  char szBuffer[20];
  int nCount;
  利用 sz 和 n 分别代表字符串和整数。为了表示一个变量名称,采用如下的变量名称是可能的:
  int iThisIsAVeryLongVariable;
  在 Linux 中,我们经常看到的是定义非常简单的函数接口和变量名称。在 Linux 内核的源代码中,可以看到 Linux 内核源代码的编码风格说明。UNIX 系统的一个特点是设计精巧,并遵守积木式原则。C 语言最初来自 UNIX操作系统,与 UNIX 的设计原则一样, C 语言被广泛认可和使用的一个重要原因是它的灵活性以及简洁性。因此,在利用 C 语言编写程序时,始终应当符合其简洁的设计原则,而不应当使用非常复杂的变量命名方法。C 语言编程代码格式要点如下:
  缩进时,使用长度为 8 个字符宽的 Tab 键。如果程序的缩进超过 3 级,则应考虑重新设计程序。
  大括号的位置。除函数的定义体外,应当将左大括号放在行尾,而将右大括号放在行首 。函数的定义体应将左右大括号放在行首。对变量名,不赞成使用大小写混写的形式,但鼓励使用描述性的名称;尽可能不使用全局变量;不采用匈牙利命名法表示变量的类型;采用短小精悍的名称表示局部变量;保持函数短小,从而避免使用过多的局部变量。保持函数短小精悍。不应过分强调注释的作用,应尽量采用好的编码风格而不是添加过多的注释。函数函数应该短小而迷人,而且它只作一件事情,并且只作一件事情,而且将它做好。一个函数的最大长度和函数的复杂程度以及缩进大小成反比。于是,如果你已经写了简单但长度较长的的函数,而且你已经对不同的情况做了很多很小的事情,写一个更长一点的函数也是无所谓的。然而,假如你要写一个很复杂的函数,而且你已经估计到假如一般人读这个函数,他可能都不知道这个函数在说些什么,这个时候,使用具有描述性名字的有帮助的函数。另外一个需要考虑的是局部变量的数量。他们不应该超过5-10个,否则你有可能会出错。重新考虑这个函数,将他们分割成更小的函数。
  注释是一件很好的事情,但是过多的注释也是危险的,不要试图区解释你的代码是注释如何如何的好,你应该将代码写得更好,而不是花费大量的时间去解释那些糟糕的代码。
  
  2 C语言中容易出现的问题
  C语言由于语法检查不是很严格,所以程序的编写过程中它会出现一些你意想不到的问题。下面举一些简单的例子来说明这一点。
  2.1 赋值语句与比较语句容易出现混淆
  我们举一个简单的例子:
  如果x等于y,则打印。我们有时候会写成
  (x=y) printf();
  这实际上把比较语句和赋值语句混淆起来了,真正的语句应该写成这样
  (x==y) printf();
  2.2 逻辑与(
其他文献
由徐长安教授主持撰写的《军事文化学》一书最近由解放军出版社出版,这是我军文化建设中的一件值得庆贺的事情。
笔者前几天刚注册了新浪的微博,仔细地进行体验,感觉还是很有意思的,因为它引发了我很多的启发。当然第一个感觉是自己落后了,在互联网圈子里面的人,对于微博这样的新事物了解甚少,有些羞愧;第二个感觉是似曾相识,最近几年的社区里面都有一些类似的短小的心情记录的功能,比如QQ就有历史签名管理的界面;第三个感觉就是互联网已经实实在在地改变了我们的生活,“网化”的倾向是越来越显著,从生活到生产,从生活方式到生产
期刊
什么是核心竞争力?向阳生涯首席职业规划师、中国职业规划师导师洪向阳认为:所谓个人核心竞争力,即不易被竞争对手效仿、具有竞争优势、独特的知识和技能。核心竞争力是不易被竞争对手模仿,并且是你独有的本领。如果别人也有这种本领,且比你高强,那么这种本领根本算不上你的核心竞争力。作为权威的职业规划咨询机构,向阳生涯通过七年来对职场的研究发现,不断打造和强化核心竞争力,是职场精英们的杀手锏!  在职业生涯中,
在象棋中,“卧槽马”可谓攻守之上佳利器,行军至底象前一格,攻可将军抽车,守则以象为掩护严防巡河车。在职场上,“卧槽马”则用以比喻善于把握人才市场走向,司职份内工作,拒绝轻率跳槽,精于韬光养晦的一类人。时至金融风暴,除了招聘职位质量的下降,企业的招聘数量更是明显下降。中华英才网的调查显示,金融危机以来,有27.1%的人延迟了跳槽计划,更有9.7%的人索性取消了跳槽计划,一并选择“卧槽”在既定岗位,巧
期刊
2009年10月2日下午,全世界的目光都聚焦到了丹麦首都哥本哈根,正在这里举行的国际奥委会第121次全会将在当天晚些时候,投票产生2016年夏季奥运会主办城市。为了给本国的申办城市拉票,各国首脑齐聚哥本哈根,美国总统奥巴马、巴西总统卢拉、日本首相鸠山由纪夫、西班牙国王卡洛斯和首相萨帕特罗,都亲临现场为本国申办城市拉票助威。为了不空手而归,国家元首们纷纷上台陈述演讲,使出浑身解数,口吐莲花、试图以情
期刊