Effiective C++条款第二条 尽量以const,enum,inline,替换#define
来源:互联网 发布:公司seo是什么职位 编辑:程序博客网 时间:2024/06/06 03:17
宁可以编译器替换预处理器。
#define MAX 1.623
MAX 可能从未被编译器看见,编译器在处理之前预处理器就将MAX移走,只能看到1.623, 当运用这个常量并且出现错误时,错误信息就只会提到1.623。用
const double Max = 1.623
就不会出现这种问题。Max肯定会进入符号表。
常量作为类的成员时,将其申明为static将其作用域限制于class中
class Gameplayer{private: static const int NumTurns = 10; //声明式 int scores[NumTurns]; };const int Gameplayer::Numturns; //如果编译器需要定义式
常量Numturns的作用域在类中,如果用#define编译后都会替换。除非用#undef。
用enum
class Gameplayer{private: enum{NumTurns = 5}; int scores[NumTurns]; };
相比较const,enum的作用更像#define. const 定义的常量可以取地址,而enum不可以。虽然好的编译器不会为const设定另外的储存空间,而enum绝对不会。
宏函数
#define MAX(a,b) f((a)>(n)?(a):(b))
只是做替换(如果不加括号很容易出错)
int a =1, b =2;MAX (++a,b); //a替换后被++两次,实际只是想++一次
用内联函数
template <class T>inline void callMax(const T& num1, const T& num2){ f(a>b?a:b);}
1 0
- Effiective C++条款第二条 尽量以const,enum,inline,替换#define
- 条款02:尽量以const,enum,inline替换#define
- 条款2:尽量以CONST,ENUM,INLINE替换#DEFINE
- 条款02:尽量以const, enum, inline 替换 #define
- 条款2:尽量以const,enum,inline替换#define
- 条款2:尽量以const,enum,inline替换#define
- 条款2:尽量以const, enum, inline 替换#define
- 条款2:尽量以const,enum,inline 替换 #define
- 条款02 尽量以const ,enum,inline替换#define
- 条款02:尽量以const、enum、inline替换#define
- 条款02:尽量以const,enum,inline替换#define
- 条款02 尽量以const enum inline 替换#define
- 条款02:尽量以const, enum, inline 替换#define
- 条款02:尽量以const ,enum,inline 替换 #define
- 条款02:尽量以const,enum,inline替换#define
- 条款2:尽量以const,enum,inline替换#define
- 条款2:尽量以const、enum、inline替换#define
- 条款02:尽量以const,enum,inline替换#define
- Manacher 算法
- Windows学习(003)--CreateFile
- 腾讯地图,百度地图,高德地图部分比较
- CTS 框架研究(2)-CTS环境调试 _源码导入eclipse
- 培训笔记
- Effiective C++条款第二条 尽量以const,enum,inline,替换#define
- C程序设计语言第二版1.20
- 南阳oj 题目 90 整数划分
- 字典操作
- xamarin学习笔记A01下(ios环境的安装)
- Protobuf3 系列三 更新Message类型
- 虚拟机搭建CDH-第六讲-安装mysql第二种方法(通过rpm包安装)
- SSH--Hibernate传值为乱码 || 显示为乱码
- 避免把情绪带进工作