我刚刚在 Microsoft Website 上研究了 C++ 关键字 inline
的使用和好处/缺陷。我理解所有这些。
我的问题是:如果编译器评估函数以查看内联它们是否会导致代码更高效,并且 inline
关键字只是对编译器的建议,那么为什么要用关键字有没有?
编辑:很多人提示我使用 (还修复了网站链接)__inline
而不是 inline
。我想指出 __inline
是 Microsoft 特定的:所以它没有错,只是不一定是你习惯的。
EDIT2:重新格式化问题以指示 inline
关键字(用于所有 C++)而不是 Microsoft 特定的 __inline
关键字。
最佳答案
首先,不是__inline
,而是inline
。
其次,inline
在单一定义规则中的作用不可否认是重要的。它允许您多次定义函数并让编译器处理它。
第三,关于实际的内联,这是您表达您对该函数的意见的方式,不仅是对编译器,也是对那些以后可能阅读您的代码的人。在许多情况下,这是一种发泄情绪的方式,可以这么说。基本上,这是您告诉其他人和您自己的一种方式:“我觉得这个函数太小(或太专业),无法证明调用开销是合理的,所以不要让我为这种讽刺负责。我做了我所做的一切可以。如果不是因为你愚蠢的公司范围编码标准,我会把它变成一个宏”。在这方面,它是一种正式评论。
第四,看到您使用了特定于实现的关键字拼写,我注意到一些实现为您提供了替代关键字,让您有机会变得更……呃……有说服力 您希望内联该功能。在 MS 编译器中,它将是 __forceinline
。
关于c++ - 为什么要在 C++ 中使用 'inline' 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17325911/