C“inline”关键字的替代品
发布时间:2020-12-16 10:45:36 所属栏目:百科 来源:网络整理
导读:从我的课程讲师,他反复强调并要求我们不要使用“内联”关键字来实现功能.他说它不是编译器的“可移植”而不是“标准”.考虑到这一点,是否存在允许“内联扩展”的“标准”替代方案? 解决方法 你的课程讲师错了.这是标准的.它实际上在当前标准中,就在第6.7.4
从我的课程讲师,他反复强调并要求我们不要使用“内联”关键字来实现功能.他说它不是编译器的“可移植”而不是“标准”.考虑到这一点,是否存在允许“内联扩展”的“标准”替代方案?
解决方法
你的课程讲师错了.这是标准的.它实际上在当前标准中,就在第6.7.4节函数说明符(C99)中.对编译器的建议可能完全被忽略的事实并没有使它变得不那么标准.
我认为它不是在C89 / 90中可能是某些嵌入式编译器使用的,但在这种情况下我会认真考虑升级. 然而,即使在内联可用的情况下,我通常会将这些决定留给编译器本身,因为大多数现代决策都能够找出如何最好地优化代码(通常远比我好).内联关键字,如register和auto,根本不是我通常所担心的. 您可以使用宏,因为这是相对简单的文本替换,通常在编译阶段之前发生,但您应该了解限制和缺陷. 或者您可以手动内联代码(即复制它),虽然我不建议将其作为选项,因为它可能很快成为维护的噩梦. 我自己,我会使用普通函数编写代码而不使用任何这些技巧,然后在必要时引入它们(并且只有当你能证明它们是需要的时候,例如特定的性能问题). 你应该总是假设必须维护你的代码的编码员是一个知道你住在哪里的心理变态杀手:-) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |