[Code Complete] CH12&CH13 Data Type
2013-06-14 00:02
197 查看
1. 针对数值类型的变量操作的时候,需要注意:
Ø 避免使用神秘数字Ø 预防除零异常
Ø 类型转换需要明显,不要使用自动的类型转换。
Ø 避免不同类型的比较,会发生自动的转换。
Ø 针对整数,需要考虑溢出问题,特别是中间结果。
2. 浮点数
Ø 避免数量级相差很大的浮点数相加,如果必须相加,先排序,从小开始。Ø 避免直接的等量判断
Ø 解决精度问题:使用double,变成int
3. c字符串
Ø 警惕末尾的’\0’,包括长度和复制的时候。Ø 尽量使用strcmp,strcpy,strlen等函数,避免自己写。
4. 布尔变量
Ø 使用变量名说明布尔表达式的意义。5. 枚举类型
Ø 在switch中,有没有检查意外的枚举类型。Ø 枚举类型的第一个一般使用非法的。
6. 数组
Ø 对维数组的下标需要注意顺序,好办法是不用i,j之类的名字Ø 注意边界。
7. 指针
Ø 把指针相关的操作限制在子程序里面,或者类内部。Ø 把指针相关的操作限制在子程序里面,或者类内部。
Ø 在指针分配相同的位置删除指针
Ø 使用之前先检查指针
Ø 用额外的指针提高可读性,即单一变量单一用途。
Ø 简化指针表达式,多用几个指针
Ø 在释放的时候将指针设为NULL,删除之前检验是否合法。
Ø 使用智能指针。
Ø 把指针用于用于”按引用传递“参数,const用于”按值传递”参数。
相关文章推荐
- S03_CH13_ZYNQ A9 TCP UART双核AMP例程
- xm:18:<module>:IOError: [Errno 13] Permission denied: '/var/run/xm-deprecation-long-warning'
- MySQL: 1006 - Can't create database '***' (errno: 13) 错误
- 2016级移动应用开发在线测试13-Location、Sensor & Network
- while((ch=getchar())!=EOF&&ch != '\n');消除非法输入
- 程序猿之--C语言细节13(二维数组和指针,&*a[i][0]的理解,数组1[e]和e[1]很可能你没见过)
- (OK) Android-x86-7.1.1/ kernel 4.4.62 - quagga - MIMP - 13 ( 6 nodes) - ping & tcpdump
- <%@page contentType="text/html;charset=gbk"%>与<meta http-equiv="Content-Type" content="text/html; ch
- 笔试算法题(13):反转链表 & 左旋转字符串
- Web前端-HeadFirst-笔记-Ch13-表格与列表
- flex 表头加 换行,内容显示不全。
- 消息: 'Ext.EventObject' 为空或不是对象 行: 13 字符
- Leet Code 12 & 13 Integer <---> Roman
- ZZULI 1618 (HDU 1082)Matrix Ch…
- projecteuler---->problem=13----Large sum
- SharePoint PowerShell命令系列 (13) Get-SPWebApplication & Set-SPWebApplication
- 13.返回通知&异常通知&环绕通知
- ERROR 1 (HY000): Can't create/write to file'/' (Errcode: 13)错误解决
- 算法篇-13-随机化-线性同余&主元素问题&N皇后问题&素数测试
- scanf("%c", &ch) & 回车