您的位置:首页 > 编程语言 > C语言/C++

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);去了,勘误一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: