C语言陷阱与缺陷(7)

       可移植性

1.应对C语言标准变更

2.标识符名称的限制

       能区别多少个字符不同的外部名称,有无区分大小写

3.整数的大小

       C提供了3种不同长度的整数:short、int、long,它们的长度是非递减的。

4.字符是有符号整数还是无符号整数

       在实际许可的情况下,尽量使用无符号类型

5.移位运算符

       有符号数的右移,可以用0填充空出的位,也可以用符号位的副本填充空出的位;无符号数的右移,只能用0填充空出的位。

       移位对象的长度为n位,则移位计数a的范围为0<=a<n

6.内存位置0

       NULL指针并不指向任何对象,除了赋值和比较运算,其它任何目的使用NULL指针都是非法的。

       NULL指针的误用是未定义的。

7.除法运算时发生的截断

       在除法运算中,如:q=a/b,r=a%b,除了满足q*b+r=a,a的符号改变时,q的符号也改变但绝对值不变外,还要保证a与r同正负。

8.随机数的大小

       PDP-11计算机上的整数长度为16位(包含符号位),其rand函数的返回值介于02^15-1之间。

9.大小写转换

       先加再减,避免下溢出

1.     首先释放,然后重新分配

 调用realloc函数,应先释放内存后在重新分配

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值