读书笔记1

尽量以const,enum,inline,替换#define
我们无法使用#define创建一个class专属常量。因为#define不注重作用域。也不能提供任何的封装性,也就是说没有所谓的private #define这样的东西。而const成员是可以被封装的。
一个const的地址是合法的,但取一个enum的地址就不合法,而取define的地址通常也不合法。
有了const、enum和inline,我们对预处理的需求降低了,但并非完全消除。#include仍然是必需品,而#ifdef/#ifndef也继续扮演控制编译的重要角色。目前还不到预处理器全面隐退的时候。但你应该明确的给予它更长更频繁的假期。
**对于单纯常量,最好以const对象或enum替换#define。
对于形似函数的宏,最好改用inline函数替换#define。**

尽可能使用const
const只是语言层面的限制,可以通过内存进行改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值