写过C程序都知道,malloc了新的struct之后,经常跟着一大串的赋值\初始化语句。其实这些可以用一行漂亮的代码搞定。
先上代码:
#define new(type, ...) ({\
type* __t = (type*) malloc(sizeof(type));\
*__t = (type){__VA_ARGS__};\
__t; })
使用示例:
struct S {
union {
int x, y;
};
enum {AA, BB} e;
};
int main() {
struct S *s1 = new(struct S);
struct S *s2 = new(