首页 > 试题广场 >

在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求

[单选题]

在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( )。

  • 内联函数
  • 重载函数
  • 递归调用
  • 嵌套调用
       内联函数具有 一般函数 的特性,它与一般函数所不同之处只在于 函数调用 的处理。一般函数进行调用时,要将程序执行权转到 被调用函数 中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用 表达式 用内联函数体来替换。
       在使用内联函数时,应注意如下几点:
    1.在内联函数内不允许用 循环语句 和开关语句。 如果内联函数有这些语句,则编译将该函数视同普通函数那样产生函数调用代码,递归函数(自己调用自己的函数)是不能被用来做内联函数的。内联函数只适合于只有1~5行的小函数。对一个含有许多语句的大函数,函数调用和返回的开销相对来说微不足道,所以也没有必要用内联函数实现。
       2.内联函数的定义必须出现在内联函数第一次被调用之前。
    3.本栏目讲到的类结构中所有在类说明内部定义的函数是内联函数。
发表于 2017-06-30 15:22:38 回复(0)
大体上功能和宏定义函数差不多
发表于 2017-06-13 19:38:14 回复(0)
C++ 建议内联函数 替换宏函数(消除调用的时间空间开销)

使用内联函数的原因:
函数调用是有时间和空间开销的:入栈、出栈、跳转等开销。
如果函数体代码多,需要较长时间执行,函数调用机制占用的时间可以忽略。
但如果函数只有一两条语句,大部分时间都花费在函数调用机制上,开销就不容忽视。

宏函数与内联函数的区别:
1.宏函数是在预处理期间进行处理,只是简单的文本替换,在编译之前已经替换好了。
2.内联函数在编译进行处理,具备普通函数的相应功能 参数检查 类型检查..

注意事项:
1、函数体不能太庞大,5行以下。
2、不能有循环语句。
3、不能有复杂的条件判断语句。
4、不能对内联函数进行取地址操作, 因为编译完后的程序中不存在函数体。
5、内联是一种请求,不一定成功。


发表于 2018-09-20 11:29:20 回复(0)
内联函数,前面多了inline关键字,编译器处理内联函数体的代码插入调用处,而不是编译成函数调用的指令。
发表于 2022-02-20 15:05:49 回复(0)
内联函数,前面多了inline关键字,编译器处理内联函数语句时,直接将整个内联函数体的代码插入调用处,而不是编译成函数调用的指令~ 并且,内联函数代码应该简单那么几句而已~
发表于 2021-03-21 17:31:30 回复(0)