带参宏定义的思考
带有参数的宏定义:
宏定义是一种替换,所以返回的通常是带有运算符表达式.不能返回语句.
通常用的一些运算符:三目运算符(代替if语句)...&&...||
特殊建议:为了保证准确性,在()中放入变量
下面是一些宏定义的例子/
1,判断字符是不是10进 值的数字
#define DECCHK( c ) ((c) >= '0'&& (c) <='9')
2,判断字符是不是16进 值的数字
#define HEXCHK( c ) ( ((c) >= '0'&& (c) <= '9') ||\
((c) >= 'A'' && (c) <= 'F'') ||\
((c) >= 'a' && (c) <= 'f') )
3,将一个字母转换为大写
#define UPCASE( c ) ( ((c) >= 'a' && (c) <= 'z') ? ((c) - 0x20) : (c) )
4.取三个数的最大值:(c)>((a)>(b)?(a):(b))?(c):((a)>(b)?(a):(b))