我刚刚研究了 C++ 关键字的使用和优点/陷阱inline
on the 微软网站我明白这一切。
我的问题是:编译器是否评估函数以查看内联它们是否会导致代码更高效并且inline
关键字只是对编译器的一个建议,为什么要为关键字烦恼呢?
编辑:很多人都在抱怨我使用__inline
代替inline
。我想指出的是__inline
是微软特有的:所以它没有错,只是不一定是你习惯的。(还修复了网站链接)
EDIT2:重新格式化问题以指示inline
关键字(在所有 C++ 中使用)而不是 Microsoft 特定的__inline
关键词。
首先,它不是__inline
, but inline
.
其次,效果inline
在单一定义规则中具有无可否认的重要意义。它允许您多次定义函数并让编译器来处理它。
第三,关于实际的内联,这是你表达你的方式opinion不仅向编译器介绍该函数,还向那些稍后可能阅读您的代码的人介绍该函数。可以说,在很多情况下,这是一种发泄情绪的方式。基本上,这是你告诉其他人和你自己的一种方式:“我觉得这个函数太小(或太专业),无法证明调用开销是合理的,所以不要让我对这种嘲讽负责。我做了我所有的事情可以。如果不是你们愚蠢的全公司编码标准,我会把它做成一个宏”。从这方面来说,它是一种正式评论.
第四,看到您使用了特定于实现的关键字拼写,我注意到某些实现为您提供了替代关键字,让您有机会变得更加……呃……有说服力的您希望内联该函数。在 MS 编译器中,这将是__forceinline
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)