C语言中如何判断两个结构体中每项内容完全相等,除了对每个分量逐个比较外,还有其他办法吗?

发布网友 发布时间:2022-04-24 13:45

我来回答

5个回答

热心网友 时间:2023-10-15 00:03

只能进行对比,但是你要是每个成员写出来对比的话是很麻烦的事你可以用一个循环
然后使用两个指针将两个结构体强制转换为char类型指针再将这两个字符指针一 一对比这样就能检查是否相等了。

热心网友 时间:2023-10-15 00:04

c语言中的结构体位值类型,它不像c++的结构体更类似于类,里面可以有成员函数

对于值类型来说,是可以直接比较的 == , !=
但是,这是基于结构体内的数据类型都是基本类型,如果有指针这种类型,估计就不能直接比较了

热心网友 时间:2023-10-15 00:04

#include <stdio.h>

typedef struct
{
unsigned short A:4;
unsigned short B:12;
}Name;

main()
{
printf("the lenth of UINT is:%d\n",sizeof(Name));
}

已调试通过~~~~
你问的那个问题和编译器有关

首先要在你的编译器中找到两字节的变量
VC中 unsigned short是两字节的
所以我定义的是 unsigned short

TC中可能用的是 unsigned int

热心网友 时间:2023-10-15 00:05

先sizeof获取结构体的大小
两个结构体的地址强制转成两个char*指针
用for循环对这两个指针地址逐个比较

热心网友 时间:2023-10-15 00:05

我只知道有,老师叫我上网搜,我也正在找!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com