如果它是一个结构,那么它可以完成
*p = {var1,var2..};
但似乎这并不适用于联盟:
union PtrList{ PtrList *next; State *s;};PtrList *l;l = allocate_space();*l = {NulL};
只得到:
expected Expression before ‘{’ token解决方法 在C99中,您可以使用d esignated union initializer:
union { char birthday[9]; int age; float weight; } people = { .age = 14 };
在C,unions can have constructors.
在C89中,你必须明确地做.
typedef union { int x; float y; voID *z;} thing_t;thing_t foo;foo.x = 2;
顺便说一句,你是否知道在C联合会,all the members share the same memory space?
int main () { thing_t foo; printf("x: %p y: %p z: %p\n",&foo.x,&foo.y,&foo.z ); return 0;}
输出:
总结x: 0xbfbefebc y: 0xbfbefebc z: 0xbfbefebc
以上是内存溢出为你收集整理的如何初始化联盟?全部内容,希望文章能够帮你解决如何初始化联盟?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)