导航:首页 > 源码编译 > 内联是在运行时还是在编译时

内联是在运行时还是在编译时

发布时间:2023-09-10 00:20:11

A. C++内联函数在 在编译时是将该函数的目标代码插入每个调用该函数的地方

内联函数在调用时,是将调用表达式用内联函数体来替换,而一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中。

如果内联失败这个函数就是一个普通的函数,普通的函数不会被编译器展开,只是作为函数调用。内联函数比普通函数效率高的原因就是编译器在调用处把这个函数展开,展开就是直接执行代码而不是调用这个函数,像宏展开的意思。

(1)内联是在运行时还是在编译时扩展阅读:

宏调用并不执行类型检查,甚至连正常参数也不检查,但是函数调用却要检查。C语言的宏使用的是文本替换,可能导致无法预料的后果,因为需要重新计算参数和操作顺序。在宏中的编译错误很难发现,因为它们引用的是扩展的代码,而不是程序员键入的。

许多结构体使用宏或者使用不同的语法来表达很难理解。内联函数使用与普通函数相同的语言,可以随意的内联和不内联。

B. C++内联函数具体有什么作用

内联函数可减少cpu的系统开销,并且程序的整体速度将加快,但当内联函数很大时,会有相反的作用,因此一般比较小的函数才使用内联函数。

内联函数是C++的增强特性之一,用来降低程序的运行时间。当内联函数收到编译器的指示时,即可发生内联:编译器将使用函数的定义体来替代函数调用语句,这种替代行为发生在编译阶段而非程序运行阶段。

值得注意的是,内联函数仅仅是对编译器的内联建议,编译器是否觉得采取你的建议取决于函数是否符合内联的有利条件。如何函数体非常大,那么编译器将忽略函数的内联声明,而将内联函数作为普通函数处理。

内联函数具有一般函数的特性,它与一般函数所不同之处公在于函数调用的处理。一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换。在使用内联函数时,应注意如下几点:

1、类内定义的函数是内联函数,类外定义的函数是非内联函数(短函数可以定义在类内,长函数可以定义在类外)。

2、可以为类外定义的函数指定 inline 关键字,强行为内联函数。

3、在内联函数内不允许用循环语句和开关语句。

4、内联函数的定义必须出现在内联函数第一次被调用之前。

阅读全文

与内联是在运行时还是在编译时相关的资料

热点内容
对矩阵压缩是为了 浏览:910
setfacl命令 浏览:172
linux子系统中断 浏览:342
linux查看进程ps 浏览:224
知识库系统php 浏览:623
小波变换压缩图像python 浏览:151
阿里巴巴程序员怎么月入百万 浏览:173
如何使用国外服务器 浏览:188
燃灯者pdf 浏览:468
编译器用数学吗 浏览:7
图形化apk反编译工具 浏览:48
考勤表加密怎么办 浏览:735
arj压缩与解压批处理怎么写 浏览:658
php和大数据哪个好 浏览:930
未来最值得投资的加密货币 浏览:526
ascii码是编译的时候用吗 浏览:781
压缩机感应包可以通用吗 浏览:413
方舟服务器怎么发布到搜索列表 浏览:270
xml防反编译 浏览:242
数据传输加密系统技术方案 浏览:843