71

__attribute__((always_inline))関数を gcc で強制的にインライン化しますか?

4

8 に答える 8

52

はい。

always_inline

通常、最適化が指定されていない限り、関数はインライン化されません。インラインで宣言された関数の場合、最適化レベルが指定されていなくても、この属性は関数をインライン化します。

于 2011-12-05T05:24:02.880 に答える
23

はい、そうなります。それは良い考えだという意味ではありません。

于 2011-12-05T05:26:47.017 に答える
13

gcc 最適化オプションのドキュメントによると、パラメーターを使用してインライン化を調整できます。

-finline-limit=n
By default, GCC limits the size of functions that can be inlined. This flag 
allows coarse control of this limit. n is the size of functions that can be 
inlined in number of  pseudo instructions.

Inlining is actually controlled by a number of parameters, which may be specified
individually by using --param name=value. The -finline-limit=n option sets some 
of these parameters as follows:

    max-inline-insns-single is set to n/2. 
    max-inline-insns-auto is set to n/2.

インライン化のすべてのパラメーターについて詳しく読んで、適切に設定することをお勧めします。

于 2011-12-11T13:55:38.140 に答える
4

はい。他のオプションセットに関係なく、関数をインライン化します。ここを参照してください。

于 2011-12-05T05:23:36.910 に答える