首页 > 代码库 > 好的编程习惯(一)

好的编程习惯(一)

1 全局变量少用,或者用局部变量,或者放在类中,或函数中。

1)全局变量多了,不知道全局变量的含义,以及不知道有多少地方在使用。

 

2)数据未知

HANDLE           g_Handle1;

HANDLE           g_ArrHandle[] = { g_Handle1};

全局变量初始化的时候,g_Handle1,还没有值。

如果只是局部使用,就用局部变量。

 

3)将局部变量,考虑用全局变量代替,有一个原因可能是担心栈溢出,而导致程序异常,如果是这样的话,用全局变量代替,只是隐藏了问题。

 

2 类命名要统一

1)xx_yyyy_zzzzz

2)CXxxxYyyyy

要么是1),要么是2)。

 

3 参数做成一个配置文件,其他地方引用

1)不会出现同步问题。

2)不会出现多份,节省内存。

 

4变量和函数的public和private

1)public给外面调用的。

看一个类的时候,通过看public和private就能看出来。

 

5

for (inti =0 ;i<3;i++)

{

}

1)3 没具体含义,配置变量。

2)如果是在线程中,做成异步,不会阻塞线程,定义几个状态。根据状态来判断。

 

3)定义查询和创建接口。

 

 

6 map的使用

typedef map<char*, CXxxxObject*>MapXxxxObject;

这样写,char* 是一个地址。要么自己重载 < 方法。

char* 内容和地址都不同,才唯一。

pXxxxObject = m_map_xxxx[temp];

这里想要什么效果,用一个字符串作为key吗?如果是这样达不到你的要求。

 

如果是int就没这个问题。

 

7 返回值

1)return 0; 没有具体含义。

 

2)int和void

有值返回用int,没有值返回用void。

 

8 XxxxYyyy* pXxxxYyyy

1)与NULL判断

 

2

Assert(0)

 

assert(pXxxxYyyy);

 

3)自定义ASSERT,可以让assert在release中也有效。

 

4)比较

与NULL判断在release版本同样需要做逻辑判断。

assert保护现场,方面查找和定位问题。

 

8基类的析构函数定义为虚函数

如果不是虚函数,很容易内存泄露。子类里可能释放不了内存。

 

9在哪儿new,在哪儿delete

newdelete要在一个地方出现,这里可以是一个函数,也可以是一个类。

1)代码可读性强。

2)容易检查有没有内存泄露。

 

有的时候,因为new出来的东西需要放在队列中,那就在处理队列的类中new和delete。

 

10 测试

在系统联调前,要做好功能测试,单元测试,接口测试。自己写用例,可以借助工具来完成。

 

 转载请原创链接:http://blog.csdn.net/wujunokay/article/details/27583147