gpt4 book ai didi

比较两个无符号字符结构和位域

转载 作者:行者123 更新时间:2023-11-30 15:18:58 24 4
gpt4 key购买 nike

我有一个包含无符号字符和位字段的结构:

struct {
unsigned char byt1 ;
unsigned char var1 :1;
unsigned char byt2 ;
unsigned char var2 :1;
unsigned char var3 :1;
unsigned char var4 :1:

} struct1;

我想将此结构与其自身进行比较。我保留了该结构的两个副本,我只想检查与它的第一个副本相比是否有任何更改。

这里使用 memcmp() 安全吗?真正的结构有 50 多个成员,它们都是无符号字符或位。

最佳答案

该结构看起来可能包含大量填充,并且该内存的内容未指定(例如,参见 this old SO answerthis memcmp reference ),所以不,你不能真正使用 memcmp.

但是,如果您使用例如初始化结构memset 那么它应该可以工作。技术上未指定,但实际上 memset 也应该设置填充。

所以回答你的问题:如果你总是使用 memset 清除结构,那么实际上你应该可以使用 memcmp,但理论上这是未定义的行为。

关于比较两个无符号字符结构和位域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30983353/

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