当前位置: 首页 > news >正文

Qt中字节对齐问题和数据的序列化和反序列化的问题

网络传输,最好设置成1字节对齐,这样发送端和接收端,内存的分布和大小都一摸一样的


使用  #pragma pack(1)  设置1字节对齐


反序列化,可以完全用char或char数组来接收,然后再解析成int、float、double或QString


使用memcpy将char数组转int、float、double或QString

#pragma pack(1)
struct haitao{char name[15];quint32 age;float money;double timee;
};struct haitao2{char name[15];char age[4];char money[4];char timee[8];
};

    haitao ht;strcpy(ht.name, "xuhaitao");int zhi=458;memcpy(&ht.age,&zhi,4);ht.age=369;ht.money=3.15;ht.timee=2.58;//将ht转成QByteArrayQByteArray byteArray;byteArray.append(reinterpret_cast<const char*>(&ht), sizeof(ht));//再将QByteArray反转成ht2haitao2 ht2;std::memcpy(&ht2, byteArray.data(), sizeof(ht2));//下面解析每一个属性的值QString myname=ht2.name;// 解析age(4字节char数组转int)int ageValue;std::memcpy(&ageValue, ht2.age, 4);// 解析money(4字节char数组转float)float moneyValuexx;std::memcpy(&moneyValuexx, ht2.money, 4);// 解析timee(8字节char数组转double)double moneyValuexx2;std::memcpy(&moneyValuexx2, ht2.timee, 8);

FR:徐海涛(hunkxu)

http://www.dtcms.com/a/363903.html

相关文章:

  • springboot2.x集成swagger api(springdoc-openapi-ui)
  • 开源企业级快速开发平台(JeecgBoot)
  • python - ( js )object对象、json对象、字符串对象的相关方法、数组对象的相关方法、BOM对象、BOM模型中 Navigator 对象
  • 人工智能与强化学习:使用OpenAI Gym进行项目开发
  • Scikit-learn从入门到实践:Scikit-learn入门与实践
  • Scikit-learn从入门到实践:Scikit-learn入门-安装与基础操作
  • SQLynx VS DBeaver:数据库管理工具的两种思路
  • 京东科技大模型RAG岗三轮面试全复盘:从八股到开放题的通关指南
  • 通信中的双工器模型是什么?
  • 《水浒智慧》(第一部:梁山头领那些事儿)读书笔记
  • ARM编译器生成的AXF文件解析
  • 在Linux 2.4.x内核中,如何从一个page找到所有映射该页面的VMA?反向映射可以带来哪些便利?
  • Vue基础知识-localStorage 与 sessionStorage
  • Linux 文本处理三大利器:命令小工具和sed
  • leetcode-每日一题-3025. 人员站位的方案数 I-C语言
  • Web 开发 17
  • Mysql数据库基础(上)
  • MySQL-Undo Log(回滚日志)
  • 【Python3教程】Python3高级篇之多线程
  • 通用的二叉数迭代方法
  • 国内真实的交换机、路由器和分组情况
  • 容器日志加密传输在海外云服务器环境的配置标准与实施指南
  • Go结构体详解:核心概念与实战技巧
  • 计算机Python毕业设计推荐:基于Django的酒店评论文本情感分析系统【源码+文档+调试】
  • 移动端网页设计vm+rem,和px实现方式对比
  • ansible变量+管理机密
  • ansible循环+判断(with,loop,when,if,for)
  • 视觉语言模型VLM部署:基于tensorrt和tensorrt-llm的C++代码
  • 基于SpringBoot的广科大在线图书管理系统设计与实现(代码+数据库+LW)
  • Arduino Uno与4×4矩阵键盘联动完全指南