【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; }