如何解决如何在C中初始化结构?
我有两个struct(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:我必须像第二个代码一样在另一行中对其进行初始化。
谢谢。
解决方法
您可以使用compound literals生成匿名结构。
t_bitmapheader filehdr;
t_bitmapinfo infohdr;
filehdr = (t_bitmapheader){ 0 };
infohdr = (t_bitmapinfo){ 0 };
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。