C语言结构体赋值
时间:2010-12-28 来源:icunow
对struct结构体的赋值,囧,忘记了,都是用memcpy的。记忆下:C语言结构体赋值 1 对成员赋值. 1.1 用{}形式. struct st1 st1 = {1,2,3); 1.2 linux kernel风格. struct st1 st1 = { .a = 1; .b = 2; }; 2 对整体赋值. struct st1 a, b; b = a; 3 结构体作为函数返回值对另一个结构体赋值. struct st1 func1(); struct st1 a = func1(); 举例: [ctest]# vi t.c #include struct st1 { int e1; int e2; }; struct st1 func1() { struct st1 h = { 77, 88}; return h; } int main() { struct st1 a = { 33, 44}; struct st1 b = { .e1 = 55, }; struct st1 c; struct st1 d; c = a; d = func1(); printf("e1 e2 is %d %d\n", a.e1, a.e2); printf("e1 e2 is %d %d\n", b.e1, b.e2); printf("e1 e2 is %d %d\n", c.e1, c.e2); printf("e1 e2 is %d %d\n", d.e1, d.e2); return 0; } "t.c" 29L, 420C written [ctest]# gcc -o a t.c [ctest]# ./a e1 e2 is 33 44 e1 e2 is 55 0 e1 e2 is 33 44 e1 e2 is 77 88
相关阅读 更多 +