Appearance
CPP 内联函数
- 在编译的时候展开(一般是跳转)
- 关键字
inline - 因为会展开,所以要求函数小,使用频繁,不允许递归
和有参宏的区别
- 宏函数是预处理时展开,而内联函数是编译时展开
- 带参宏本质是宏替换,只替换不计算,不检查
CPP
using namespace std;
#define MAX(a, b) ((a) > (b) ? (a) : (b))
inline int max(int a, int b) { return a > b ? a : b; }
int main() {
int a = 1; int b = 1;
cout << MAX(++a, ++b) << endl;
a = 1; b = 1;
cout << max(++a, ++b) << endl;
}上面的运行结果为 3, 2 。