C语言 2个不引人注意的细节
来源:互联网 发布:js 时间字符串转date 编辑:程序博客网 时间:2024/05/18 00:26
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);
6) c语言switch语句的每个case必须有break;不然后续的case的case会依次执行;
/////
int n='c';
switch (n++)
{
default:
printf("error");
break;
case 'a':
case 'A':
case 'b':
case 'B':
printf("ab");
break;
case 'c':
case 'C':
printf("c");
case 'e':
printf("e");
case 'd':
case 'D':
printf("d");
}
输出结果为ced;
7)
void func(int *p)
{
(*p)=(*p)+1;
return;
}
指针形参是传值的,但是可以改变指针所指值的内容;
8)写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个;
#define MIN(A,B) ( (A)>=(B) ? (B):(A) )
- C语言 2个不引人注意的细节
- C语言的细节!
- C 语言的一些细节
- C语言的typedef 细节
- C语言的细节问题
- C语言细节2OK
- Java语言的26个细节
- Java语言的26个细节
- Java语言的26个细节
- Java语言的26个细节
- C语言学习中遗漏的细节
- c语言注意的小细节
- C语言的细节(不定期更新)
- C语言的一些细节总结
- 关于C语言的几个细节
- C语言的一些琐碎细节备忘
- C语言预处理#运算符的细节
- c语言的一些小细节
- Mysql性能优化教程
- Android学习(一)
- 将Flex 3应用程序移植到Flex 4.5中 第3部分:Spark组件及皮肤制作简介 (一)
- Java synchronized以及ReentrantLock 学习
- 以计算为中心 虚拟化时代的交换网络(1)
- C语言 2个不引人注意的细节
- glf for eclipse
- 以计算为中心 虚拟化时代的交换网络 (2)
- 秒字符设备
- 以计算为中心 虚拟化时代的交换网络 (3)
- phpcms 默认模板的会员登陆位置
- 以计算为中心 虚拟化时代的交换网络 (4)
- apache+tomcat 子目录映射成子域名
- phpmyadmin设置密码,不用登录直接进入