c与c++程序员的编程修养

1.版权和版本

好的程序员会给自己的每一个文件和函数都注明版权和版本;比如文件头部应该有这样的注释:

	/******************************************************
	* 文件名:hello.cpp
	* 文件描述:提供一个打印hello world的函数
	* 创建人:jinNiu.Yang
	* 创建时间:2021/12/15
	* 版本号:1.0
	* 修改记录:
	******************************************************/

函数应该有这样的注释:

	/******************************************************
	* 函数名:XXX
	* 参数:
	* 功能描述:
	* 返回值:
	* 抛出异常:
	* 作者:
	******************************************************/

2.缩进、空格、换行、空行

  1. 缩进:一个缩进一般是一个TAB键;
  2. 空格:在语句中各个操作符之间加空格;函数传参时在各个参数间加空格;
  3. 换行:不同语句之间换行;函数参数多时换行;
  4. 空行:程序块之间,最好加上空行;

3.注释

一般来说你写这些地方的注释:文件、函数、变量(用来干嘛)、算法、功能块;

4.函数的入参和返回值

写有参数的函数时,首要工作,就是要对传进来的所有参数进行合法性检查;对于返回值也一样;比如入参是指针就要考虑为空指针的情况,当然,在c++中使用引用比使用指针要好的多;
返回值是指针也一样。

5.if语句对出错的处理

if语句处理错误时,不要使用else,而是先判断错误,比如下面例子:

	if(a == 0)                                if(a != 0)
		.......      ------------>>               出错处理
	else                                          return; 
		出错处理	                          .........

6.头文件防止多次编译

头文件中千万不要忘了防止多次编译,一般格式为(比如stdio.h):
	#ifndef _STDIO_H_
	#define _STDIO_H_
	
	..........
	
	#endif

7.在堆上分配内存

malloc或new函数是从堆上分配内存,系统不会自动释放,需要自己手动释放,不然会产生内存泄漏(Memory Leak);然后系统可以分配的堆内存越来越少,直到系统崩溃;以下有几个注意的点:

  1. 谁申请谁负责释放;类、函数
  2. malloc分配的内存一定要初始化,free后指针一定要置为null;
  3. 虽然现在操作系统都会帮助我们释放,但也不会释放掉所有的,最好还是自己释放;IBM公司的工具Purify可以帮助我们检查Memory Leak;

8.标识符命名(函数名、变量名)

  1. 见名知意,要最短长度也要最大限度表达其含义;
  2. 可以简写,但也要让人看得明白:ErrorCode–>ErrCode;
  3. 用匈牙利命名法命名函数参数、局部变量;用驼峰命名法命名全局变量、静态变量;
  4. 与标准库(如:STL)或开发库的命名风格保持一致;

9.修改别人程序的修养

当维护别人的代码时,不要主观臆测的把已有程序删除或修改,可以注释掉再添加自己的代码;这样好恢复,也是对原作者的一种尊敬;

10.将相同或近乎相同的代码形成函数和

如果有一些程序的代码段很相似甚至直接一样,就可以将其放入一个函数中直接调用;如果代码不多,就可以把它写成宏函数;

11.函数参数个数如果多了请用结构体

一般多于6个就应该使用结构体,返回值也一样;这样要是要增加数量的话,可以不用改函数,直接改结构体就行;

12.函数中的代码尺寸

一个函数只完成一个具体的功能,一般来说,一个函数代码最好在100行到300行左右;有证据表明,一个函数代码超过500行,就会有与之前代码重复或相近的代码;

13.为常量声明宏

最好不要在程序中出现数字式的“硬编码”,如:int user[120];应该为120声明一个宏,这样维护性会高,要改所有引用120的地方,只需要修改宏就好;

14.不要忽略Warning

就算Warning不会妨碍目标代码的生成,但是请不要忽视他们,修正每一个Warning是一个有修养的程序员应该做的事;

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>