摘要: return 用来终止一个函数并返回其后跟着的值char *Func(void){char str[30];...return str;}上面这个函数虽然语法正确,但却会产生程序员不想要的错误。str 属于局部变量,位于栈内存里,当函数结束时,str被释放,返回str会产生错误。所以:return 不能返回指向栈内存的指针! 阅读全文
posted @ 2012-11-18 20:39 枫部落 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 几种零值比较的情况:1. bool类型与零值bool bTestVal;最好写成 if(bTestVal) 和if(!bTestVal)而不要写成:if(bTestVal == 0)和if(bTestVal != 0)//容易误会也不要写成:if(bTestVal == TRUE )和if(bTestVal == FALSE)//有些编译器把TRUE当作-1,如visual basic2. float变量与零值的比较float fTextVal = 0.0;if((fTextVal >=0.0 - EPSINON)&&(fTextVal <=0.0 + EPSINO 阅读全文
posted @ 2012-11-18 20:34 枫部落 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 在计算机系统中,数值一律用二进制补码进行表示,补码的计算规则是:补码 等于 原码按位 取反 再 加 1。有符号类型的数值,最高位是符号位,1为负数,0为正数。按照补码计算规则,可得 正数的补码等于其原码。如:char num;num = 1;如 +1 的原码是 0000 0001 ,补码也是 0000 0001;而 - 1 的补码是 1111 1111。以下以8位有符号类型的数值来认识一下补码:可以看到,当用8位来存储数据时,数据的大小范围是 -128到127。可以发现,+127加1后,如果是无符号的,表示的是128,但如果是有符号的,则刚好是-128的补码,再加1,是-127的补码。而,-1 阅读全文
posted @ 2012-11-18 17:06 枫部落 阅读(1018) 评论(0) 推荐(0) 编辑
点击这里给我发消息