宏非常频繁地用于执行简单的计算,比如在两个表达式中寻找其中较大(或较小)的一个:
#define MAX(a, b) ( (a) > (b) ? (a) : (b)),所欲对于数值表达式进行求值的宏定义都应该用这种烦恼故事加上括号,避免在使用宏时,由于参数中的操作符或邻近的操作符之间不可预料相互作用。使用宏还有两个优点:使用宏比使用函数在程序的规模和速度方面都更胜一筹,宏与类型无关。使用宏的不利之处在于每次使用使用宏时,一份宏定义的拷贝都将插入到程序中,有可能会大幅度增减程序的长度。
宏非常频繁地用于执行简单的计算,比如在两个表达式中寻找其中较大(或较小)的一个:
#define MAX(a, b) ( (a) > (b) ? (a) : (b)),所欲对于数值表达式进行求值的宏定义都应该用这种烦恼故事加上括号,避免在使用宏时,由于参数中的操作符或邻近的操作符之间不可预料相互作用。使用宏还有两个优点:使用宏比使用函数在程序的规模和速度方面都更胜一筹,宏与类型无关。使用宏的不利之处在于每次使用使用宏时,一份宏定义的拷贝都将插入到程序中,有可能会大幅度增减程序的长度。