条款02:尽量以const, enum, inline 替换#define
来源:互联网 发布:java map list set 编辑:程序博客网 时间:2024/05/04 14:11
带参数的宏: a 和 b 较大值调用f
#define CALL_WITH_MAX(a, b) f( (a) > (b) ? (a) : (b) )
当你写出这种宏时,必须为宏中的所有实参加上小括号,否则引起不必要的麻烦
看下面不堪思议的事情
int a = 5;
int b = 0;
CALL_WITH_MAX(++a, b) ; //a被累加了两次
#define CALL_WITH_MAX(++a, b) f( (++a) > (b) ? (++a) : (b) ) //a = 7
CALL_WITH_MAX(++a, b +10) ; //a被累加了一次
f调用之前 , a的递增次数取决于"它被拿来和谁比较"
1 0
- 条款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
- 条款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(Prefer const,enum,inline to #define)
- 条款2:尽量以CONST,ENUM,INLINE替换#DEFINE
- 条款2:尽量以const,enum,inline替换#define
- 条款2:尽量以const,enum,inline替换#define
- 条款2:尽量以const, enum, inline 替换#define
- 条款2:尽量以const,enum,inline 替换 #define
- 条款2:尽量以const,enum,inline替换#define
- app推送架构设计之全局观
- 通过数组保存字符串和通过指针保存字符串的区别
- 【erlang 使用】eredis 介绍
- JavaScript设计模式--策略模式
- Mac窗口管理神器
- 条款02:尽量以const, enum, inline 替换#define
- VC6.0中的C语言反汇编代码
- mysql jdbc驱动源码分析(驱动加载)
- 输入一个数计算其二进制中连续1的个数
- 如何发布自己写的网站,使自己的机器成为服务器
- Android之Fragment学习(三)
- 黑马程序员——Java之IO(下)
- 数据结构实验之排序一:一趟快排
- char*,string和CString之间的转换