今天看公司的一位大佬写的一个函数库模块--corenowa(这是他自己取的名字),发现里面有很多地方非常巧妙!
比如 :
#ifdef __STDC__
#define STR(x) #x
#define CONC(x,y) x##y
#define CONC3(x,y,z) x##y##z
#else
#define STR(x) "x"
#define CONC(x,y) x/**/y
#define CONC3(x,y,z) x/**/y/**/z
#endif
还发现一个地方,给函数名加上了括号:
typedef struct Signal_interface Signal_interface_t; struct Signal_interface
{
void (*handler) (int32_t signum, signal_cb_func func);
};
原来加上括号是为了防止宏扩展。
来自:http://tieba.baidu.com/f?kz=1010232148