a. 最大、最小值比較
#define min(x,y) ({ typeof(x) _x = (x); typeof(y) _y = (y); \
(void) (&_x == &_y); _x < _y ? _x : _y; })
#define max(x,y) ({ typeof(x) _x = (x); typeof(y) _y = (y); \
(void) (&_x == &_y); _x > _y ? _x : _y; })
b. 用於除錯:
#ifdef DEBUG
#define PDEBUG(fmt, arg...) printk(fmt, ##arg)
#define ENTER() PDEBUG("[%-20s] : Enter...\n", __FUNCTION__)
#define LEAVE() PDEBUG("[%-20s] : Leave...\n", __FUNCTION__)
#else
#define PDEBUG(fmt, arg...)
#define ENTER()
#define LEAVE()
#endif
更簡單的表示:
#define DBG(msg, arg...) printf("%s:%s(%d): " msg, __FILE__, __FUNCTION__, __LINE__, ##arg)
沒有留言:
張貼留言