C语言编程十大建议——语法语义篇:使用脚本检查部分语义错误

来源:互联网 发布:网络测试仪怎么看 编辑:程序博客网 时间:2024/06/06 01:58

1.亲核字符串、数组操作之越界与否。不然,很可能出现程序可以编译通过,但是最终却给出了错误的结果。另外指针和数组的越界访问,很容易出发segment fault

2.不要重写标准库函数,把函数名改成你自己才懂得的晦涩的名字,遵循一种统一的编程规范

3.在书写switch case和定义相同结构的变量的时候,如果为了少手动来写一部分代码,直接采用复制粘贴的形式,那么很有可能你的某个便另定义是错误的(直接copy了钱一个变量的值,而没有做对应的修改)。

4.scanf后面没有加&,switch中漏掉break,=和==的误用

5.使用一些危险的,有可能产生越界的库函数,例如gets等。

6.多加或者少用了分号,while后if后面,会导致逻辑错误。

7.函数的声明最好和定义分离,函数要先声明,后使用

8.循环边界的确定,边界的+1还是-1,从循环中出来以后值是多少,往往是一些关键节点。


当程序的逻辑和你预想的逻辑不符的时候,想想什么地方可能出现问题:其中,4、5、6三点是最容易出现问题的地方;如何避免这类问题浪费掉大量调试时间呢?写一个脚本,每次都检查这几个地方!


给一个sed脚本,可以检测for、while、if后面多加的分号问题:

  1 #n  2 /^[\ \t]*if/{  3     /);/p  4 }  5   6 /^[\ \t]*while/{  7     /);/p  8 }  9  10  11  /^[\ \t]*for/{ 12     /);/p 13 }

更多的语法正确而语义错误的例子,可以参考:http://blog.csdn.net/ipmux/article/details/17350933


原创粉丝点击