宏定义函数和普通函数

来源:互联网 发布:15寸mac魔兽世界 编辑:程序博客网 时间:2024/05/30 04:19

宏定义函数:

  • 预处理阶段进行简单的文本替换,没有入栈、出栈、参数传递和函数返回等等工作,执行效率明显高于普通函数,因此,简短并且被频繁调用的函数经常用宏定义函数来代替实现
  • 没有参数检查,会影响程序安全
  • 如果函数比较复杂,函数体规模比较大,使用宏定义函数就会增加程序的大小
  • 宏定义函数的调用有可能改变函数的原生语义,比如涉及到运算符优先级的函数时,调用宏定义函数可能会改变函数的原生语义,所以使用时要格外小心

普通函数:

  • 具有参数检查,压栈,出栈,参数传递等工作,程序更加安全,但是执行效率会低于宏定义函数
  • 函数体只会存在一个,每次调用都会转向函数体的位置执行函数功能,适合复杂函数的定义