【C语言应该注意的那些事】之 一 :函数式宏定义
2013-06-16 13:41
225 查看
函数式宏定义小心使用会显著提高代码的执行效率,毕竟省去了分配和释放栈帧、传参、传返回值等一系列工作,因此那些简短并且被频繁调用的函数经常用函数式宏定义来代替实现。
#define MAX(a,b) ((a)>(b)?(a):(b))
k =MAX(i&0x0f, j&0x0f)
这就是一个简单的函数式宏定义。
函数式也经常写成这样:
#define device_init_wakeup(dev,val) \
do { \
device_can_wakeup(dev) =!!(val); \
device_set_wakeup_enable(dev,val); \
} while(0)
这里要特别声明一下:
上面代码中换行需要永达“\”转移字符,这与c代码中明显不同:c代码中可以直接换行。
因为这是c语言特有的特性决定的----------换行在C代码中只不过是一种空白字符,在做语法解析时所有空白字符都已经丢掉了
#define MAX(a,b) ((a)>(b)?(a):(b))
k =MAX(i&0x0f, j&0x0f)
这就是一个简单的函数式宏定义。
函数式也经常写成这样:
#define device_init_wakeup(dev,val) \
do { \
device_can_wakeup(dev) =!!(val); \
device_set_wakeup_enable(dev,val); \
} while(0)
这里要特别声明一下:
上面代码中换行需要永达“\”转移字符,这与c代码中明显不同:c代码中可以直接换行。
因为这是c语言特有的特性决定的----------换行在C代码中只不过是一种空白字符,在做语法解析时所有空白字符都已经丢掉了
相关文章推荐
- C语言宏定义##连接符和#符的使用及其它宏定义注意事项
- C语言宏定义##连接符和#符的使用及其它宏定义注意事项
- 函数式宏定义与普通函数的区别?C语言宏定义和宏定义函数 ?
- C语言开发应该注意的问题
- C语言开发中应该注意的一些问题
- 函数式宏定义与普通函数的区别?C语言宏定义和宏定义函数 ?
- 如何学习c语言,新手入门应该注意什么?
- C语言宏定义用法注意事项与好处
- java编码应该注意的问题
- C语言之宏定义
- C语言常用宏定义
- #if defined和#if !defined(c语言的宏定义)
- 在vue项目中前端生成二维码应该注意的问题
- Web开发在Mac下配置Apache、php、MySQL应该注意的地方(Yosemite10.10.3)
- C语言宏定义技巧——多次包括头文件内容不同
- 学C语言应该注意的
- 新手学习java应该注意的事情
- 关于主从同步时应该注意的一些问题;
- 我们在设计类时应该注意的问题
- 网站外链建设应该注意什么?