内联函数课件.pptVIP

  • 9
  • 0
  • 约2.9千字
  • 约 13页
  • 2019-02-22 发布于安徽
  • 举报
内联函数 在C++中,函数调用需要建立栈空间,进行参数复制,保护调用现场,返回时,还要进行返回值复制,恢复调用现场。 这些工作都是与完成特定任务的操作无关的额外开销。程序效率由于这项工作而受到影响。 函数调用需要一些时间和空间方面的开销;对于较长的函数这种开销可以忽略不计,但是对于一些函数体代码很短,但又被频繁地调用的函数,就不能忽视这种开销。引入内联函数正是为了解决这个问题,提高程序的运行效率。    内联函数声明和定义 内联函数的几点限制 (1)函数体内不能出现复杂的结构语句,例如switch和while等。如果出现了上述语句,则内联定义无效,仍视为一般函数。 (2)递归函数不能定义成内联函数。 (3)内联函数一般适用于小函数(含1—5行代码)。   double Average(double total, int number)   {    return total/number;   }   定义这么简单的函数有必要吗?实际上,它还是有一些优点的:第一,它使程序更可读;第二,它使这段代码可以重复使用。但是,它也有缺点:当它被频繁地调用的时候,由于调用函数的开销,会对应用程序的性能有损失。例如,Average在一个循环语句中重复调用几千次,会降低程序的执行效率。   那么,有办法避免函数调用的开销吗?对于上面的函数,我么可以把它定义为内联函数的形式:

文档评论(0)

1亿VIP精品文档

相关文档