宏定义实现和普通函数实现:
- 宏定义是直接在实现的时候进行代码替换,可能产生结果异常问题。
- 普通函数实现:调用函数进出函数体的时候时间开销可能过大。
1 #include <iostream> 2 using namespace std; 3 //宏实现 4 #define GETMAX(a, b)((a) > (b) ? (a) : (b)) 5 //函数实现 6 int getMax(int a, int b) 7 { 8 return a > b ? a : b; 9 } 10 int main() 11 { 12 int n = 10; 13 int n1 = GETMAX(n, 2);//10 14 //int n1 = ((10) > (2) ? (10) : (20)); 15 int n2 = GETMAX(n++, 2);//11 16 //int n2 = ((10) > (2) ? (11) : (2)); 17 int i = 10; 18 int n3 = getMax(i, 2);//10 19 //return 10 > 2 ? 10 : 2 20 int n4 = getMax(i++, 2);//10 21 //return 10 > 2 ? 10 : 2 22 cout << n1 << endl; 23 cout << n2 << endl; 24 cout << n3 << endl; 25 cout << n4 << endl; 26 system("pause"); 27 return 0; 28 }
内联函数:一般是在当前项目的很多地方都要使用
1.inline是对编译器的建议(结合普通函数和宏定义):建议编译器将函数置为内联,编译器根据开销判断是使用函数还是宏定义。
一般会使用宏定义,函数体复杂或者Debug模式则使用普通函数调用。
2.debug版本没有inline,为了方便调试
3.内联函数必须写在头文件中
//inline.h inline int getMax(int a, int b) { return a > b ? a : b; }
Main.cpp
// Main.cpp #include "inline.h" xxx
标签:10,函数,int,C++,内联,getMax,inline From: https://www.cnblogs.com/gpf1997/p/17875402.html