我有一个 C 结构,说
typedef struct __X {
char AA[10];
int A;
char BB[10];
int B;
..
..
..
char ZZ[10];
int Z;
} _X;
如何用最少的代码初始化一个结构,前提是 int
应该用 0 初始化,char
用 ' ' 空格初始化。
我知道的一个解决方案是:
memset(_X,0,sizeof(_X));
然后分别将 AA, BB, CC ... ZZ 设置为 ' ',但这是一个漫长的过程,并且需要进行大量的代码更改。
有没有更简单的方法?
最佳答案
实现这一点的最简单方法是编写初始化函数:
void initialize(_X *x)
{
memset(x, 0, sizeof(_X));
x->AA[0] = ' ';
x->BB[0] = ' ';
// etc
// etc
x->ZZ[0] = ' ';
}
你不会得到比这更多的东西。
编辑:如果您希望用空格完全填充字符数组,那么您需要memset
它们,而不是将第一个字符设置为空格。
关于c - 在C中初始化混合结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39334465/