inline(内联函数)和宏(define)

inline(内联函数)和宏(define) define:宏定义列如#define ADD(int a,int b) ((a)(b)) //这样会使计算在预处理时就进行运行更快 //但也有明显的缺点1我们的宏定义太过于繁杂有时不容理解2他不能调试3存在类型转换问题4容易命名冲突为了优化宏定义的问题推出了内联函数的定义inline add(int a,int b){ return ab; }类似于正常函数名前加上inline但实际的应用方面却有所不同首先我们要知道正常函数在运行时会存在栈帧的压栈并用call创建一块空间来完成相应的功能而内联函数本身可以理解为一种替换列如inline int add(int a ,int b){ return ab; } int main(){ int a0; int b10; int cadd(a,b); //相当于将add(a,b)直接替换为 ab 直接展开了没有使用call; }1内联函数本身是为了减少时间是一种内存换空间方法2内联函数是经过编译器识别后执行的当我们的3函数体代码太多编译器会直接将其以函数处理例如但我们的内联函数的代码有100行调用了1000次那么但我们调用时所占用的内存内联1000*100行函数1000100行所以内联函数本身适用于代码数倍较少调用次数多的函数其调用本身是为了省去Call的时间当Call的时间大于代码运行时间时