现在的位置: 首页 > 架构设计 > 正文

宏和内联函数的优缺点以及对比

2020年01月13日 架构设计 ⁄ 共 627字 ⁄ 字号 评论关闭

  宏(#define)和内联函数(inline)的理解以及区别:

  宏的优缺点

  优点:

  1.加快了代码的运行效率

  2.让代码变得更加的通用

  缺点:

  1.宏没有类型检测,不安全

  2.宏是在预处理时进行简单文本替换,并不是简单的参数传递(很难处理一些特定情况。例如:Add(z++))

  3.使代码变长

  4.宏不能进行调试

  5.当预处理搜索#define定义的符号时,字符串常量并不被搜索

  内联函数的优缺点

  特点:

  (1.)类中的成员函数是默认的内联函数

  (2.)内联函数内不准许有循环语句和开关语句

  (3.)内联函数的定义必须出现在第一次调用内联函数之前

  优点:

  1.有类型检测,更加的安全

  2.内联函数是在程序运行时展开,而且是进行的是参数传递

  3.编译器可以检测定义的内联函数是否满足要求,如果不满足就会当作普通函数调用(内联函数不能递归,内联函数不能太大)

  缺点:

  代码变长,占用更多内存

  宏和内联函数的对比

  宏和内联函数的相同点:

  两者都是可以加快程序运行效率,使代码变得更加通用

  宏和内联函数的区别:

  1.内联函数的调用是传参,宏定义只是简单的文本替换

  2.内联函数可以在程序运行时调用,宏定义是在程序编译进行

  3.内联函数有类型检测更加的安全,宏定义没有类型检测

  4.内联函数在运行时可调式,宏定义不可以

  5.内联函数可以访问类的成员变量,宏不可以

  6.类中的成员函数是默认的内联函数

抱歉!评论已关闭.