良好的编程习惯

来源:互联网 发布:mac电磁阀型号 编辑:程序博客网 时间:2024/05/21 10:39

最近,看到一些编程技巧有意无意的去使用,然而这些技巧看起来很华丽,但有碍于良好的编程习惯。

比如在输出一个数组时,可以有以下两种写法:

for (int i = 0; i < len; ++i)   //良好的习惯cout << arr[i] << endl;for (int i = 0; i < len; cout << arr[i++] << endl);//不好的习惯

虽然第二个看起来更加简洁,如果一直使用这些技巧的话,对于一些新手来说看懂这些是代码有点困难,对与代码的维护也就增加了难度。



1.BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)

            这就能看出一个人的内功如何了。

虽然bool,int,指针变量都可写成 if(!var)这种形式,但这并不能体现出其实际含义。
正确的写法为
bool:if(!var)
int:if(var==0)
指针变量:if(var==NULL)
另外,float变量应该为
float x=0.00001; if((var<=x)&&(var>=x))  因为float并不精确,如果写成if(var==0.0)这是错的,应该设法变成<=和>=比较

2.善用assert()函数

       在处理一些参数时。特别是在对参数进行一些操作前,我们需要对参数进行一些判断,确保参数可以继续进行操作。特别是指针形形参。如下例:

char * strcpy( char *strDest, const char *strSrc ) {  assert( (strDest != NULL) && (strSrc != NULL) );  char *address = strDest;   while( (*strDest++ = * strSrc++) != '\0' );    return address;} 

这么做的好处就是对于不满足条件的参数不进行操作,就如上面的例子,避免了当strDest和strSrc为空时对这两个参数进行操作。善于使用assert()可以体现一个程序员缜密的逻辑。

3.善于使用引用

引用说白了就是给参数取一个别名,然后通过操作别名来实现对参数的操作。请看下面例程:
void swap(int &a, int &b) {int tmp;tmp = a;a = b;b = tmp;}void swap(int *a, int *b) {int tmp;tmp = *a;*a = *b;*b = tmp;}


上面例程中第一个使用了引用,第二个使用了指针,虽然函数最后实现的效果是一样的,效率就不一样了。第一个程序使用了引用,所以函数只需要开辟一块空间给tmp就行啦!而第二个例程中就需要开辟三块空间分别给tmp,a,b这三个参数。因为a,b是指针来的,指针需要内存空间。

0 0
原创粉丝点击