良好的编程习惯

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

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

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是指针来的,指针需要内存空间。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值