如果它是一个结构体,则可以完成。
*p = {var1, var2..};
但是似乎这种方法不能用于 union
:
union Ptrlist
{
Ptrlist *next;
State *s;
};
Ptrlist *l;
l = allocate_space();
*l = {NULL};
仅仅得到:
expected expression before ‘{’ token
u.field1=NULL;u.field2=NULL
来实现,但这不是有些冗余吗? - lexerunion
的含义。每次只能(安全地)使用一个字段。如果你想要访问两个字段,你需要一个struct
。如果你只是想确保整个东西都被置空,那么在这种情况下你可以选择任意一个,因为指针类型(可能)具有相同的长度。 - James Wilcox