gpt4 book ai didi

c - 避免多类型结构的 memset

转载 作者:行者123 更新时间:2023-11-30 18:29:10 27 4
gpt4 key购买 nike

我想避免使用memset()在这样的结构上:

typedef struct {
int size;
float param1;
} StructA;

typedef struct {
StructA a;
unsigned int state;
float param2;
} Object;

我可以做这样的事情吗(伪代码,我现在无法检查)?

Object obj;
int *adr = (int*)&obj;
for (int i; i < sizeof(obj); i++) {
*adr++ = 0;
}

它会将 obj 的每个成员设置为零吗?

编辑:回答评论问题。我一直在研究一些案例(具有单一类型结构),其中 memset比手动初始化慢两倍。所以我也会考虑尝试初始化多类型结构。

避免memcpy()也很好(避免 <string.h> lib)。

最佳答案

通用零初始化器将所有内容(递归地)初始化为正确类型的零。

Object object = {0};

关于c - 避免多类型结构的 memset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40739415/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com