gpt4 book ai didi

使用变量转换 C 结构体

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

我正在为一个项目编写一个通信协议(protocol),其中包括两个用于请求和响应的 C 结构。根据设备的设置方式,数据传输可以是请求(主模块)或响应(从模块)。

这些结构彼此非常接近。最大的区别在于请求与响应的结构方式。

我有一个变量,它保存指向定义为的全局变量的指针

unsigned int MBData;

MBData = gCommResponse;

当引用代码时,我要么有

((MBResponse*)MBData)->Address = someData;

((MBResponse*))MBData)->Address = someData;

此代码是成功的,但希望通信功能更加模糊。

我想做的是使用指向 MBRequest 或 MBResponse 的指针来转换 MBData。

unsigned int MBStruct;

MBStruct = &MBResponse;

((MBStruct*)MBData)->Address = someData; // Something like this

这在 C 编程中可能吗?

谢谢。

最佳答案

这是不可能的。当访问结构体成员时,编译器需要在编译时知道该结构体的类型。

尽管这两个结构可能具有具有共同名称的字段,但不能保证它们是相同(或兼容)的类型,或者它们在各自结构中的偏移量相同。

关于使用变量转换 C 结构体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31992887/

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