C语言好用的宏
一、绝对值
#define ABS(x) ( (x)>0?(x):-(x) )
二、防止头文件包含
#ifndef COMDEF_H
#define COMDEF_H
//头文件内容
#endif
三、得到指定地址上的一个字节或字
#define MEM_B( x ) ( *( (byte *) (x) ) )
#define MEM_W( x ) ( *( (word *) (x) ) )
四、求最大值和最小值
#define MAX( x, y ) ( ((x) > (y)) ? (x) : (y) )
#define MIN( x, y ) ( ((x) < (y)) ? (x) : (y) )
五、得到一个字的高位和低位字节
#define WORD_LO(xxx) ((byte) ((word)(xxx) & 255))
#define WORD_HI(xxx) ((byte) ((word)(xxx) >> 8))
六、VA_ARGS
#define LOG(...) printf(__VA_ARGS__)
//...表示可变参数,__VA_ARGS__就是将...的值复制到这里
#define tim_log(fmt, ...) _tim_log( __FILE__, __LINE__, fmt, ##__VA_ARGS__, 0)
//加上##作用:当可变参数的个数为0时,##可以把前面多余的”,“去掉,否则编译出错