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);去了,勘误一下。
本文探讨了在C++编程中使用常量、枚举和内联函数相较于#define预处理的优势。文中详细分析了常量定义和宏使用的潜在问题,并推荐了模板和内联函数作为更优的选择。
468

被折叠的 条评论
为什么被折叠?



