读书人

结构体成员为数组该怎么初始化

发布时间: 2012-03-13 11:21:10 作者: rapoo

结构体成员为数组,该如何初始化
typedef struct ABCD_STRU
{
char A[16];
char B[16];
char C[16];
char D[16];
}ABCD;

我想把该结构体成员都初始化为“0000000000000000”该如何做?
strcpy(ABCD.A, “0000000000000000”);
strcpy(ABCD.B, “0000000000000000”);
strcpy(ABCD.C, “0000000000000000”);
strcpy(ABCD.D, “0000000000000000”);
这样操作有问题吗?

[解决办法]

C/C++ code
#include <stdlib.h>#include <stdio.h>#include <string.h>typedef struct{        char A[16], B[16], C[16], D[16];}ABCD;int main(){        ABCD test;        memset(&test, '0', sizeof(test));#define end(name) test.name[15]        end(A) = end(B) = end(C) = end(D) = '\0';#undef end#define str(name) test.name         printf("%s %s %s %s\n", str(A), str(B), str(C), str(D));        return 0;}
[解决办法]
探讨
C/C++ code
strcpy(ABCD.A, “0000000000000000”);
strcpy(ABCD.B, “0000000000000000”);
strcpy(ABCD.C, “0000000000000000”);
strcpy(ABCD.D, “0000000000000000”);
//应改为
strcpy(ABCD.A,"000000000000000");……

读书人网 >C语言

热点推荐