下面说法正确的是(54)。

admin2010-01-17  21

问题 下面说法正确的是(54)。

选项 A、内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B、内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C、类的内联函数必须在类体内定义
D、类的内联函数必须在类体外通过加关键字inline定义

答案B

解析 本题考查内联函数的定义和特点。内联函数分为显式内联函数和隐式内联函数,其中显式内联函数是指在类声明的内部声明,而在类声明外部定义;隐式内联函数是指在类声明的内部定义的内联函数。内联函数是在类中加关键字inline定义的。由于函数的调用实际上是将程序执行顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去前要保护现场并记忆执行的地址,转回后先要恢复现场,并按原来保存的地址继续执行。因此,函数调用要有一定的时间和空间方面的开销,影响了其执行效率。引入内联函数就是为了解决这一问题。内联函数在程序编译时,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体来进行替换,这种做法不会产生转去转回的问题,提高了程序的执行效率。但是由于在编译时将函数体中的代码替代到程序中,因此会增加目标程序代码量,进而增加空间开销,可见它是以增加空间开销为代价来换取运行时间的。
转载请注明原文地址:https://kaotiyun.com/show/7YjZ777K
0

最新回复(0)