【发布时间】:2023-03-02 22:49:01
【问题描述】:
我知道,当函数定义对于性能而言很小并且可以节省编译时间时,将函数(普通函数而不是类中的方法)声明为内联是一种很好的做法。但是类中的内联方法怎么样 我不明白类中内联方法的概念?如何定义它们以及它们是如何工作的。
【问题讨论】:
-
“当函数定义对性能来说很小并且可以节省编译时间时,这是一个很好的做法” - 你从哪里读到的?
-
@OliCharlesworth :我的意思是如果函数包含一个或两个语句,那么将这个函数声明为内联将节省编译对定义所做的跳转时间,特别是如果这个函数被调用了很多次.
-
请记住,由于编译器会在每个调用站点为内联函数生成代码,因此您可能没有帮助您的编译时间。过多的内联会降低编译时间并增加可执行文件的大小。
-
只是一个澄清。内联声明不会节省编译时间。它以牺牲大小为代价节省了代码执行期间的时间。假设您放入函数中的代码需要 500 字节。如果没有内联,该函数使用 500 字节,但 cpu 将“浪费”时间用于函数的“跳转”。使用内联代码,每次调用将使用 500 字节,但速度更快。基本上,内联建议编译器更喜欢速度而不是大小。在执行时间很关键(即中断)的嵌入式环境中非常有用
-
以下链接是来自 IBM 的简短但非常好的解释。 ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/…