Effective C++ Third Edition 读书笔记 2

本文探讨了在C++编程中使用常量、枚举和内联函数相较于#define预处理的优势。文中详细分析了常量定义和宏使用的潜在问题,并推荐了模板和内联函数作为更优的选择。

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);去了,勘误一下。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值