【发布时间】:2021-01-31 16:43:56
【问题描述】:
我有两个结构(typedef)。
typedef struct s_bitmapheader
{
uint16_t bfType;
uint32_t bfSize;
uint16_t bfReserved1;
uint16_t bfReserved2;
uint32_t bfOffBits;
} t_bitmapheader;
typedef struct s_bitmapinfo
{
uint32_t bisize;
int32_t biwidth;
int32_t biheight;
uint16_t biplanes;
uint16_t bibitcount;
uint32_t bicompression;
uint32_t bisizeimage;
int32_t biXpelspermeter;
int32_t biYpelspermeter;
uint32_t biclrused;
uint32_t biclrimportant;
} t_bitmapinfo;
主要是我必须初始化它们。
首先,我尝试了这个:
t_bitmapheader filehdr = { 0 };
t_bitmapinfo infohdr = { 0 };
它有效,但我必须找到另一种方法来做到这一点。
t_bitmapheader filehdr;
t_bitmapinfo infohdr;
filehdr = { 0 };
infohdr = { 0 };
P.S:我必须像第二个代码一样在另一行中初始化它们。
谢谢。
【问题讨论】:
-
提示:
bzero()或memset()。对于归零不足的重要情况,通常会看到init_X()或make_X()类型的函数分别初始化或分配和初始化。 -
"initialization"和"assignment"是不同的概念。您确实在寻找“分配”,因为您已经知道如何正确初始化为零。 -
谢谢大家的帮助我找到了答案
标签: c data-structures struct initialization