请问GCC,编译C ++代码时,曾经尝试通过选择内联未标明的功能来优化速度inline
关键字?
Answer 1:
是。 任何编译器是免费的,只要它认为这是一个好主意,内联的任何功能。 GCC做这一点。
在-02优化级别时,编译器认为它是值得做的事情(使用试探性算法),如果它不会增加代码的大小内联完成。 在-O3每当编译器认为这是值得做的事情,无论它是否会增加代码的大小,它完成。 此外,在所有优化级别(启用优化即是),这被称为只有一次静态的内联函数。
Answer 2:
是的,特别是如果你启用了优化的高水平。
还有就是你可以提供编译器禁用此标志:-fno内联函数。
Answer 3:
如果使用“-finline函数”或“-O3”将内联函数。 你也可以使用“-finline_limit = N”调整内嵌多少呢。
Answer 4:
“-O3此选项打开更昂贵的优化, 如内联函数 ”
- http://www.network-theory.co.uk/docs/gccintro/gccintro_49.html
Answer 5:
是的,确实如此,虽然它也将产生非内联函数体非static
非inline
,因为这需要从其他翻译单元通话的功能。
对于inline
的功能,它是不能提供的功能体,如果函数是在任何特定的翻译单元中使用,所以这是没有问题的一个错误。
文章来源: Does GCC inline C++ functions without the 'inline' keyword?