C++函数很短, 但是函数内调用一个很长的函数, 该用inline吗?
高洛峰
高洛峰 2017-04-17 14:27:40
0
5
592
void x(){
    thisIsALongFunction();
}

如上图所示的代码, x()中只有一句话, 但是它所调用的函数很长, 这种情况下需要inline吗?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(5)
巴扎黑

この場合、コンパイラは外部関数を直接インライン化します。

いいねを押す +0
小葫芦

inlineこれはコンパイラへの単なる提案であり、要件ではありません。

ただし、主流のコンパイラの実装はあなたの提案を無視します。 O2 をオンにすると、短い関数は自動的にインライン化されますが、長い関数はインライン化されません。だから無視してください。

いいねを押す +0
阿神

追加します。インライン展開により、カプセル化の余分な層が削除され、内部のカプセル化はまだ存在するはずです

いいねを押す +0
黄舟

これらの問題については心配する必要はありません。コンパイラによって最適化されたコードが inline であるかどうかは関係ありません。

いいねを押す +0
PHPzhong

まず、インラインが何のためにあるのかを理解してください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート