您的位置:首页 > 编程语言 > C语言/C++

【c++程序】inline一般用法

2016-04-03 20:36 731 查看
#include "iostream"

using namespace std;

#define MYFUNC(a, b) ((a) < (b) ? (a) : (b))

inline int myfunc(int a, int b)
{
return a < b ? a : b;
}

//C++编译器可以将一个函数进行内联编译
//被C++编译器内联编译的函数叫做内联函数
//内联函数在最终生成的代码中是没有定义的
//C++编译器直接将函数体插入函数调用的地方
//内联函数没有普通函数调用时的额外开销(压栈,跳转,返回)
//结论:
//1)内联函数在编译时直接将函数体插入函数调用的地方
//2)inline只是一种请求,编译器不一定允许这种请求
//3)内联函数省去了普通函数调用时压栈,跳转和返回的开销

int main()
{
int a = 1;
int b = 3;
//int c = myfunc(++a, b);//c=2
int c = MYFUNC(++a, b);//((++a) < (b) ? (++a) : (b))
//   2      3      3      3
printf("a = %d\n", a);// a2,b3,c2
printf("b = %d\n", b);
printf("c = %d\n", c);

printf("Press enter to continue ...");
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: