C语言 2个不引人注意的细节

1)定义的结构体 不初始化;

2)sprintf是不安全的;

 

如果不注意这两点,有可能对软件的健壮性有影响!

 

 

3)if(1<x<3)  Vc编译器不报错,应该成if(x<3&&x>1)

 

4)memset(buffer,0,size) 应该改成memset(buffer,0,size*sizeof(Type)) ,比如int型和byte型是不同的,尤其在图像处理中将某一行置0的情况;

 

 

5)(25/31)*255 ,像这种算法,如果是操作数为int型,那么结果会为0,不是你所希望的,所以应该写成(25*255/31);

 

 

你可能感兴趣的:(C语言 2个不引人注意的细节)