Effective C++ Third Edition 读书笔记 2
2009-07-04 23:08
253 查看
Item 2: Prefer consts, enums, and inlines to #defines
这一章再次批判了#define预处理,包括常量定义及宏。对于常量来说是不方便运行时调试,也许对于Source Insight这样的工具很容易找到1.653这样的魔鬼数字,但如果出错的地方是1.0这样的数字就不行了。对于宏主要是++的副作用,这个是C语言的遗留问题了,本书中用Template替代宏,但作者注重的是inline,对于inline还有待于研究。
本章还涉及了一些其他问题,如enum hack,算是一种小技巧吧,想起另外一个C语言中计算结构体成员偏移量的技巧:#define XXX_OFFSETOF(type, field) (int & (((type *)0x02)->field)-0x20)
Const的用法主要在下一章中介绍。
英文版中p16,// pass by reference to cont - see Item 20 换行不好,写到f(a>b?a:b);去了,勘误一下。
这一章再次批判了#define预处理,包括常量定义及宏。对于常量来说是不方便运行时调试,也许对于Source Insight这样的工具很容易找到1.653这样的魔鬼数字,但如果出错的地方是1.0这样的数字就不行了。对于宏主要是++的副作用,这个是C语言的遗留问题了,本书中用Template替代宏,但作者注重的是inline,对于inline还有待于研究。
本章还涉及了一些其他问题,如enum hack,算是一种小技巧吧,想起另外一个C语言中计算结构体成员偏移量的技巧:#define XXX_OFFSETOF(type, field) (int & (((type *)0x02)->field)-0x20)
Const的用法主要在下一章中介绍。
英文版中p16,// pass by reference to cont - see Item 20 换行不好,写到f(a>b?a:b);去了,勘误一下。
相关文章推荐
- Effective C++ Third Edition 读书笔记 37
- Effective C++ Third Edition 读书笔记 1
- Effective C++ Third Edition 读书笔记 3
- Effective C++ Third Edition 读书笔记 4
- “Effective C++ Third Edition”学习笔记(三)
- 读书笔记之Effective C++ 2nd Edition
- 《C++ primer Third edition》读书笔记
- “Effective C++ Third Edition”学习笔记(四)
- “Effective C++ Third Edition”学习笔记(一)
- “Effective C++ Third Edition”学习笔记(二)
- 第三章:构造函数,析构函数和赋值操作(Effective C++ Second Edition 读书笔记)
- 第四章 类和函数:设计与声明(Effective C++ Second Edition 读书笔记)
- 第五章 类和函数:实现(Effective C++ Second Edition 读书笔记)
- 第一章:从C转向C++ (Effective C++ Second Edition 读书笔记)
- 第六章 继承和面向对象设计 (Effective C++ Second Edition 读书笔记)
- 第二章:内存管理(Effective C++ Second Edition 读书笔记)
- Effective C++ Second Edition 读书笔记
- 读书笔记 effective c++ Item 9 绝不要在构造函数或者析构函数中调用虚函数
- 读书笔记 effective c++ Item 10 让赋值运算符返回指向*this的引用
- 读书笔记 effective c++ Item 13 用对象来管理资源