我想避免memset()在这样的结构上使用:
typedef struct {
int size;
float param1;
} StructA;
typedef struct {
StructA a;
unsigned int state;
float param2;
} Object;
Run Code Online (Sandbox Code Playgroud)
我可以做这样的事情(伪代码,我现在无法检查)?
Object obj;
int *adr = (int*)&obj;
for (int i; i < sizeof(obj); i++) {
*adr++ = 0;
}
Run Code Online (Sandbox Code Playgroud)
它会将obj的每个成员设置为零吗?
编辑:回答评论问题.我一直在研究一些情况(使用uni-type结构),其memset速度比手动初始化慢两倍.所以我会考虑尝试初始化多类型结构.
避免memcpy()也会很好(避免使用<string.h>lib).
| 归档时间: |
|
| 查看次数: |
404 次 |
| 最近记录: |