C语言(函数与宏)
2016-02-28 13:37
260 查看
普通函数的调用需要切换上下文的时间开销,因此如果一个函数非常短而且执行非常频繁,你应该考虑将其设计为内联函数,或者C语言的宠儿:宏。
拓展:
实际上,宏和函数并不能完全彼此替换,因为宏参数跟函数参数不同,宏参数传递的是一个单纯的没有类型的标识符名字,而函数参数传递的是一个带数据类型的数值。
比如下面的宏就无法用函数来替换:
#define PRINT(member) printf("%p\n", &((some_struct *)0)->member);
上例中宏参数member是某结构体中的成员,数据类型不定,宏的功能是打印出该成员在其结构体中的位置偏移量。
相关文章推荐
- Eclipse下搭建C/C++开发环境教程
- How computer work?
- 最新首发Eclipse+CDT+android-ndk写纯c++安卓应用(附openGL Es)
- C语言实现双向非循环链表(不带头结点)的清空
- C/C++中define定义的常量与const常量
- 《你必须知道的495个C语言问题》知识笔记及补充
- C/C++中define定义的常量与const常量
- POJ 2362
- VS2010 C++ 操作Excel表格的编程实现
- C++中将数组作为形参时防止访问越界的几种方法
- C语言 单链表的 反序输出 与 反转
- effective c++读书笔记1,导读
- C++程序设计课程主页-2015级
- C++中的RVO和NRVO
- c++ gui qt4 chap02 find
- C/C++——声明一个到字符的指针,包含10个整数的数组,到包含10个整数的数组的引用,到字符串的数组的指针,到字符的指针的指针...
- c++ gui qt4 chap01 age
- 《Effective C++》Rule 37: 绝不重新定义继承而来的缺省的参数值
- C++11以前的序列点
- 如何加快 C++ 代码的编译速度