inline之__attribute__((always_inline))

来源:互联网 发布:建立网络英文怎么写 编辑:程序博客网 时间:2024/06/06 06:49

编译器只有在指定-O2的时候,才会将inline函数进行内联展开,如果不指定-O2的时候,还是会给inline函数生成单独的函数段;

如果想要编译器不管在任何时候就强制内联的话,需要在函数申明的时候指定__attribute__((always_inline));

#include <stdio.h>
inline __attribute__((always_inline)) int inline_function(int &a)
{
  a = 50;
  return 0;
}


int call_inline()
{
  int a = 3;
  inline_function(a);
  return 0;
}


int main()
{
  int a = 2;
  call_inline();
  inline_function(a);
  return 0;
}


__attribute__还能设置一些其他的属性:http://blog.csdn.net/ruixj/article/details/4274721

0 0