Mel*_*oun 2 c struct structure
我有这种结构格式
typedef struct{
tMY_STRUCT2 my_struct2;
u16 item1;
u8 item2[20];
u32 item3;
}tMY_STRUCT;
Run Code Online (Sandbox Code Playgroud)
我怎样才能通过这个结构? 由于对齐它不那么容易,我不能只是通过SIZEOF(项目)开始结构来计算偏移量.
有什么办法吗?
原因:我需要启动大型结构,有一些条件,所以我需要在FOR循环内进行.
不要这样做.结构的要点是您无法统一处理其数据项.结构是异构数据,因为数组是同构的.
在代码中一次初始化每个字段或将整个结构初始化为零.这些是唯一的好习惯选择.特别是对齐将取决于机器架构,编译器等.因此,如果对代码进行看似微不足道的更改,例如重新排序声明中的字段,或者在不同的OS上运行或在其他地方编译,则使用此方法的方法可能会中断.
选项:
memset(mystruct, 0, sizeof(mystruct));
Run Code Online (Sandbox Code Playgroud)
或(我认为这是C99) mystruct_t foo = {0};
或者只是初始化每个字段.