四、宏调用及内联函数五、条件编译指令六、字符串预处理操作符.pptVIP

  • 0
  • 0
  • 约8.32千字
  • 约 26页
  • 2017-06-13 发布于湖北
  • 举报

四、宏调用及内联函数五、条件编译指令六、字符串预处理操作符.ppt

四、宏调用和内联函数 五、条件编译指令 六、字符串预处理操作符 四、宏调用和内联函数 宏调用是C语言编译器早已有之的,C++鉴于宏调用文 本参数类型上的缺陷,特地引进了内联函数。 宏调用并不真正是C语言的内在部分而是编译器对C语 言的重要充实,内联函数属于C++语言本身。 类似于带参的宏指令,内联函数在进行了类型匹配之 后将函数体的代码指令直接扩展于源程序的调用处。 宏调用比内联函数更易发生副作用,内联函数减少宏调 用的副作用。内联函数不能回避函数所固有的副作用,只是 将副作用约束到一处。 内联函数难以取代宏调用,宏调用展开是文本串的替 换,这种替换总被实际执行,宏调用是更少中间环节的代码 展开形式。inline函数调用未必真的内联展开。 内联展开过程比宏调用付出多余的临时单元的代价。在 定义点仅由inline界定的函数是内部连接属性的。 预处理器中一些文本字符串操作符对于源程序的编写具 有莫大的好处, 而这些文本字符串操作符是编译阶段的内联 函数所无法直接利用的。宏调用无视参数的类型给通用参数 的程序编写提供了便利。例如前面介绍的交换两个内存数据 的SWAP宏: #define SWAP(a,b) { temp=a; a

文档评论(0)

1亿VIP精品文档

相关文档