void x(){ thisIsALongFunction(); }
如上图所示的代码, x()中只有一句话, 但是它所调用的函数很长, 这种情况下需要inline吗?
x()
inline
向你这种情况编译器会直接inline掉外层的函数。
inline只是向编译器提建议,并非强制。
然而主流编译器的实现上,会无视你的建议。如果你开了O2,会自动内联短的函数,一定不会内联长的函数。所以忽略它吧。
O2
加吧,内联过去就是把你那层额外的封装给解了,里面那个封装应该还在
不要关心这些问题,最终编译器优化的代码有没有inline都无所谓。
先搞清楚inline是干嘛的,,
1 回答570 阅读✓ 已解决
1 回答648 阅读
580 阅读
1 回答7.3k 阅读
1 回答2.9k 阅读✓ 已解决
3 回答2.8k 阅读
2 回答1.1k 阅读✓ 已解决
3 回答5.6k 阅读✓ 已解决
向你这种情况编译器会直接inline掉外层的函数。