《Effective C++读书笔记》--条款02尽量以const,enum,inline替换#define
来源:互联网 发布:评论系统源码 编辑:程序博客网 时间:2024/06/08 19:34
使用宏定义是一个不被推荐的做法,在阅读了书籍并且结合自身所读过的博客,总结以下两点不推荐使用宏定义的理由。
--1、宏定义是简单的字符串替换:
由于宏定义只是进行简单的字符串替换,因此有可能会造成意想不到的情况。典型的一个例子就是#define x+x 2x,当我们使用2x*2x时,我们的意图是得到(x+x)*(x+x),即4x,但实际上由于字符串替换 2x*2x相当于x+x*x+x=x+x^2+x=x^2+2x,违背了我们原本的意图,像这样的情况有时候很难检查出来。
--2、宁以编译器替换预处理器:
对于宏定义的记号,例如#define π 3.14,记号π从未被编译器看见,于是当运用此常量但获得一个编译错误信息时,你可能感觉困惑,无法准确定位问题到底出现在哪里。
阅读全文
0 0
- 读书笔记《Effective C++》条款02:尽量以const,enum,inline替换#define
- Effective C++ 读书笔记——条款02:尽量以const,enum,inline替换#define
- 【Effective C++ 读书笔记】条款02: 尽量以 const, enum, inline 替换 #define
- 《Effective C++读书笔记》--条款02尽量以const,enum,inline替换#define
- 《Effective C++》条款02:尽量以const,enum,inline替换#define
- 《Effective C++》学习笔记条款02 尽量以const,enum,inline替换#define
- Effective C++:条款02:尽量以const,enum,inline替换#define
- [Effective C++]条款02 尽量以const,enum,inline替换#define
- <Effective C++>条款02:尽量以const,enum,inline替换#define
- Effective C++ 读书笔记——条款2:尽量以const,enum,inline替换#define
- effective C++(第三版)读书笔记一——条款二:尽量以const,enum,inline替换#define
- Effective C++--条款02:尽量以const,enum,inline替换#define(以编译器替换预处理器)
- Effective C++——》条款2:尽量以const,enum,inline替换#define .
- 《effective c++》条款二:尽量以enum,const,inline替换#define
- 《Effective C++》尽量以const,enum,inline,替换#define
- effective C++:尽量以const、enum、inline替换#define
- 条款02:尽量以const,enum,inline替换#define
- 条款02:尽量以const, enum, inline 替换 #define
- AES加密解密 附赠 base64
- MongoDB学习笔记(数据操作)
- SQlite数据库
- NY oj
- Leetcode#13: Roman to Integer
- 《Effective C++读书笔记》--条款02尽量以const,enum,inline替换#define
- JAVA 获取IP
- Zabbix搭建笔记[7]--触发器
- 【Struts2】(3)Struts2国际化、Struts2上传下载、Struts2标签使用
- IOS
- 用vue构建项目笔记6(在vue中使用vue resource)
- 为给俺的小白救星浏览器增加一个调试功能绞尽脑汁搞了2天了,终于搞出点眉目,不容易啊☺
- -0的存储在计算机中到底代表啥?
- 为什么需要项目管理软件