以前刚做移动端开发的时候,常用到宏,觉得用起来可以少些一部分代码而已,非常方便,剩下的就不考虑了。这段时间看书,看到了讲解宏与函数的选择问题,我就写下来了,让大家看一下。
宏与函数的选择问题实际上是时间和空间的权衡。宏生成内联代码,即在程序中生成语句。如果调用10次宏,就在程序中插入10行代码。如果调用函数10次,程序中只有一份函数语句的副本,所以节省了空间。然而另一方面,程序的控制必须跳转至函数内,随后再返回主调程序,这显然比内联代码花费更多的时间。
宏的一个优点是,不用担心变量类型(宏处理的是字符串,而不是实际的值)。需要注意的是,宏命名中不允许有空格,但是在替换字符串中可以有空格。用圆括号把宏参数和整个替换体括起来。
如果打算使用宏来加快程序的运行速度,那么首先要确定使用宏和使用函数是否会导致较大差异。在程序中使用一次的宏无法明显减少程序的运行时间。在嵌套循环中使用宏更有助于提高效率。
以前是不求甚解,现在需要精益求精。