条款02 尽量以const ,enum,inline替换#define
来源:互联网 发布:oppo网络营销策划书 编辑:程序博客网 时间:2024/05/22 13:51
#define 的作用:
在C语言中我们经常看到
#define Max_num 100
这是个一个无参的宏定义,将Max_num的值设为100.这样做的好处是什么呢?将程序中经常出现的常量以宏定义的形式定义,
当我们想到修改该常量值为50时就不需满程序的去找该变量去修改其值,而只需修改宏定义
#define Max_num 50
显然这种无参的宏定义有助于修改程序。
#define Max( a, b ) f( (a) > (b) ? (a) : (b) )
我们或许也会看到这样的带参的宏定义,它看起来像个函数,这样的好处是什么呢?不会招致函数调用所带来的额外开销,从而提高程序的效率。
当然,我们必须特别注意这种形式出错特别高,最好在定义宏时为所有的实参都加上小括号,但就算你为所有的实参加上小括号,
在下面表达式中调用这种宏就会遭遇麻烦。
int a=5, int b=3;
Max( a ,b );//a被累加2次
Max( a, b+5 );//a被累加1次
显然这种情况是不可思议的!!
那我们会有什么好的解决办法呢?定义一个template inline函数
tempate < typename T>
inline void Max(const T& a ,const T& b)
{
f( a > b ? a :b);
}
0 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
- windows 9 会从linux偷走的五大特性
- 云计算大行其道 变革传统IT服务
- 程序员最应该去的网站
- jquery如何调用自定义函数
- Ajax get
- 条款02 尽量以const ,enum,inline替换#define
- hdu 4995 模拟
- Capture screenshot
- 怎样阅读论文(台湾彭明辉)
- 第一章知识导图
- CPU高速缓存行对齐
- Note(一) WebServices
- 【Java】Java操作Mysql的语句
- 抛弃C程序设计中的谬误与恶习(2)