1:函数参数检查
我们一般写一个函数,从来不会对函数的实参进行合法性检查,其实这是很不好的习惯。因为通常我们的函数不会出问题,但是如果
参数有问题,这个错误是和不好发现的。对参数的合法性检查可以提高程序的健壮性,如自动有提示,可提高可维护性。
2:确保数组越界。
我们应该时刻记住这点。如果往里存储一个字符串,别忘了,最后一位是\"\\0\"
3:定义变量初始化
定义变量后,应该尽快对其初始化。如果未舒适化。是一个隐患。
4:malloc后判断结果。
一般在我们的课程设计中,malloc通常都会申请成功,但在实际中,仍会出现未分配成功的情况,这时,他
会返回空。所以应该首先判断该函数返回是否为空。
5:确保不是在访问空指针
如果访问一个指针类型的变量,那么应该注意判断是否为空。如果为空就不该访问它
了。
6:工欲善其事必先利器
在动手编码之前,一定要先设计好算法。否则会很浪费时间和精力。
7:注意添加注释
在复杂的代码旁边应该有适当的注释。一方面方便别人看,一方面方便自己日后看。但切忌注释泛滥。
int i; /*define a variable*/
上面的注释不仅多余,更像是侮辱阅读程序人员的智商,这种注释千万不要有,注释
应该放在程序理解比较困难的地方。
8:多使用宏定义来定义常量。
宏定义的使用可以提高程序的可维护性。方便升级和移植。
9:应该使用sizeof来计算长度。
数据类型的长度在不同的平台下是不同的。所以为了提高移植性多使用它吧。
10:标准库函数
一方面标准库函数一般都是比较高效的安全代码。所以尽量使用它。除非在特出情况下为了提高效率,放弃使用slb
11:switch 语句别忘记default
曾经就是因为忘了写它导致浪费了很多精力。
12:变量起名要有意。
要达到识名知意的程度。
13:使用assert方便调试
别忘了#include 必须知道assert()只在调试版本呢中又效,在发行版本中是无效的。 14:malloc与free配对 malloc动态分配的内存属于堆空间。不会随着程序的退出而释放,所以在系统退出前要把使用到的堆空间都释放掉。 否则会造成内存泄露。 15:不要在函数内部定义较大的数组。 函数栈是有大小限制的。对于常见的C编译环境,默认栈的大小是:Cygwin为2MB,linux为8MB,windows为1mb。 如果想定义一个大的数组,不防试试malloc 16:多个参数替换为结构体传递。 一方面使函数简洁一方面减少函数入栈时压入多个参数带来的开销,方面函数调用,减少错误。 17:使用snprintf()代替sprinf() 同样的还有fgets()代替gets()。前者都比后者多了一个内存大小的限制条件。 18:遵守规矩,保持代码格式与项目相同 大家是团队合作,不是个人英雄。 19:经常的备份代码 你懂得。 因篇幅问题不能全部显示,请点此查看更多更全内容