gpt4 book ai didi

将结构复制到数组中

转载 作者:行者123 更新时间:2023-12-04 04:42:31 25 4
gpt4 key购买 nike

我是编码新手,在复制结构元素的浮点值并传入 int transmit_buffer[12] 时遇到问题.
请帮忙解决这个问题。

#include <stdio.h>
#include <string.h>
int i;

main(){

int transmit_buffer[12];
struct TX_REPORT{
int variable1;
float variable2;
int variable3;
int variable4;
int variable5;
int variable6;
};

struct TX_REPORT transmit_report = {1, 1.5, 40, 1, 45, 7};
memcpy(transmit_buffer, &transmit_report, sizeof transmit_buffer);
for(i=0;i<6;i++){
printf("%d\n",transmit_buffer[i]);
}
}

最佳答案

您的代码不是标准的 C,并且显示了一些 undefined behavior .

无法保证 sizeof(float) == sizeof(int) .不能保证浮点数有 IEEE 754表示。

但是,在 x86/Linux 上,这两个假设都是正确的。

顺便说一句,如果您想将这样的结构发送到文件或通过网络,请考虑一些 serialization技术。我建议使用文本序列化格式,如 JSON

关于将结构复制到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18672311/

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