ホームページ > に質問 > 本文
void x(){ thisIsALongFunction(); }
如上图所示的代码, x()中只有一句话, 但是它所调用的函数很长, 这种情况下需要inline吗?
x()
inline
巴扎黑2017-04-17 14:29:40
この場合、コンパイラは外部関数を直接インライン化します。
高洛峰2017-04-17 14:29:40
inlineこれはコンパイラへの単なる提案であり、要件ではありません。
ただし、主流のコンパイラの実装はあなたの提案を無視します。 O2 をオンにすると、短い関数は自動的にインライン化されますが、長い関数はインライン化されません。だから無視してください。
O2
阿神2017-04-17 14:29:40
追加します。インライン展開により、カプセル化の余分な層が削除され、内部のカプセル化はまだ存在するはずです
黄舟2017-04-17 14:29:40
これらの問題については心配する必要はありません。コンパイラによって最適化されたコードが inline であるかどうかは関係ありません。
PHPz2017-04-17 14:29:40
まず、インラインが何のためにあるのかを理解してください。