void x(){ thisIsALongFunction(); }
如上图所示的代码, x()中只有一句话, 但是它所调用的函数很长, 这种情况下需要inline吗?
x()
inline
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
向你這種情況編譯器會直接inline掉外層的函數。
inline只是向編譯器提出建議,並非強制。
然而主流編譯器的實作上,會無視你的建議。如果你開了O2,會自動內聯短的函數,一定不會內聯長的函數。所以忽略它吧。
O2
加吧,內聯過去就是把你那層額外的封裝給解了,裡面那個封裝應該還在
不要關心這些問題,最終編譯器優化的程式碼有沒有inline都無所謂。
先搞清楚inline是幹嘛的,,
向你這種情況編譯器會直接inline掉外層的函數。
inline
只是向編譯器提出建議,並非強制。然而主流編譯器的實作上,會無視你的建議。如果你開了
O2
,會自動內聯短的函數,一定不會內聯長的函數。所以忽略它吧。加吧,內聯過去就是把你那層額外的封裝給解了,裡面那個封裝應該還在
不要關心這些問題,最終編譯器優化的程式碼有沒有
inline
都無所謂。先搞清楚inline是幹嘛的,,