《大规模C++程序设计》读书笔记28
2008-03-05 22:42
337 查看
Technorati 标签: C++,大规模C++程序设计,读书笔记
指导方针30:避免在接口中使用unsigned整数;改为使用int整数。
C++要求,涉及一个unsigned整数的双目运算符在执行操作之前,首先要将另一个整数转换成unsigned。有可能将某个负数隐式转换为一个很大的正数。
原则107:有时注释比直接在代码中表达一个接口决策要更好(如,unsigned)。
同short一样,在接口中使用unsigned同样会暴露函数实现细节、削弱封装、干扰函数重载、干扰模板实例化。
指导方针31:在接口中避免使用long;改为assert(sizeof(int) >= 4),并使用int或一个用户自定义的大整数类型。
long int在不同的机器上可能有不同的长度(32、64),因此使用long会削弱代码的可移植性。编译时的大量警告信息会妨碍客户的正常使用。long同样会干扰函数重载、干扰模板实例化。
指导方针32:考虑在接口中对于浮点类型只使用double,除非有强制性的原因才使用float或long double。
从历史上看,C语言要求所有的浮点表达式都是double类型的,不支持long double,ANSI C才引入了用fload直接进行算术运算的能力。大多数C库都以double类型传递并返回浮点值,大多数计算机硬件都对double进行了优化。
原则108:在实际出现的大多数情况下,为了在接口中能表达整数和浮点数,所需要的唯一基本类型分别是int和double。
指导方针30:避免在接口中使用unsigned整数;改为使用int整数。
C++要求,涉及一个unsigned整数的双目运算符在执行操作之前,首先要将另一个整数转换成unsigned。有可能将某个负数隐式转换为一个很大的正数。
原则107:有时注释比直接在代码中表达一个接口决策要更好(如,unsigned)。
同short一样,在接口中使用unsigned同样会暴露函数实现细节、削弱封装、干扰函数重载、干扰模板实例化。
指导方针31:在接口中避免使用long;改为assert(sizeof(int) >= 4),并使用int或一个用户自定义的大整数类型。
long int在不同的机器上可能有不同的长度(32、64),因此使用long会削弱代码的可移植性。编译时的大量警告信息会妨碍客户的正常使用。long同样会干扰函数重载、干扰模板实例化。
指导方针32:考虑在接口中对于浮点类型只使用double,除非有强制性的原因才使用float或long double。
从历史上看,C语言要求所有的浮点表达式都是double类型的,不支持long double,ANSI C才引入了用fload直接进行算术运算的能力。大多数C库都以double类型传递并返回浮点值,大多数计算机硬件都对double进行了优化。
原则108:在实际出现的大多数情况下,为了在接口中能表达整数和浮点数,所需要的唯一基本类型分别是int和double。
相关文章推荐
- 《大规模C++程序设计》读书笔记8
- 《大规模C++程序设计》读书笔记11
- 《大规模C++程序设计》读书笔记20
- 《Effective C#》读书笔记——条目28:提供粗粒度的互联网API<使用C#表达设计>
- 《大规模C++程序设计》读书笔记9
- 《大规模C++程序设计》读书笔记17
- 《大规模C++程序设计》读书笔记30
- 代码段间转移控制时的特权级检查(JMP/CALL)——《x86汇编语言:从实模式到保护模式》读书笔记28
- iOS之《Effective Objective-C 2.0》读书笔记(28)
- effective C++ 读书笔记(11-28)
- Effective C++ 读书笔记(28)
- 《大规模C++程序设计》读书笔记16
- 《大规模C++程序设计》读书笔记21
- 《大规模C++程序设计》读书笔记2
- 《大规模C++程序设计》读书笔记5
- 《Effective C++》读书笔记之item28:避免返回handles指向对象内部成分
- 读书笔记MoreEffectiveC++(28)
- 读书笔记—CLR via C#同步构造28-29章节
- 读书笔记 effective c++ Item 28 不要返回指向对象内部数据(internals)的句柄(handles)
- 《大规模C++程序设计》读书笔记3