宏使用总结

1、宏常用模式

#define MIN(A,B) ((A)<=(B)?(A):(B))                    //结尾无分号,参数和整个宏最好都用括号括住。

2、要防止宏副作用

如:宏定义#define MIN(A,B) ((A) <= (B) ? (A) : (B))MIN(*p++, b)的作用结果是:

((*p++) <= (b) ? (*p++) : (b))

  这个表达式会产生副作用,指针p会作二次++自增操作。

你可能感兴趣的:(宏使用总结)