带参宏定义的思考

带有参数的宏定义:

宏定义是一种替换,所以返回的通常是带有运算符表达式.不能返回语句.

通常用的一些运算符:三目运算符(代替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))

posted @ 2014-12-03 19:30  BB的想法  阅读(234)  评论(0编辑  收藏  举报