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

tcp通讯学习数据传输

 __attribute__((packed)) 的作用

这是 GCC 编译器的扩展语法(其他编译器如 Clang 也支持),用于取消结构体的内存对齐(Memory Alignment),具有以下特性:

特性说明
取消内存对齐优化强制编译器按成员顺序紧密排列,不留空隙。
节省内存空间结构体总大小为 sizeof(uint16_t) + sizeof(uint8_t) = 3字节(无填充字节)。
兼容硬件/协议要求常用于网络协议、传感器数据解析等需要精确控制内存布局的场景。
  • 默认对齐(无 packed

    typedef struct {uint16_t distance;  // 2字节uint8_t intensity;  // 1字节
    } LidarPointStructDef;
    • 实际大小可能是 4字节(编译器在 intensity 后填充 1 字节以满足对齐)。

  • packed 取消对齐

    typedef struct __attribute__((packed)) {uint16_t distance;  // 2字节uint8_t intensity;  // 1字节
    } LidarPointStructDef;
    • 实际大小严格为 3字节

http://www.xdnf.cn/news/16530.html

相关文章:

  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博文章数据可视化分析-文章评论量分析实现
  • Web3 网络安全漏洞的预防措施
  • 面向对象系统的单元测试层次
  • 算法思维进阶 力扣 375.猜数字大小 II 暴力递归 记忆化搜索 DFS C++详细算法解析 每日一题
  • K8s集群两者不同的对外暴露服务的方式
  • React--》实现 PDF 文件的预览操作
  • [2025CVPR-图象分类]ProAPO:视觉分类的渐进式自动提示优化
  • ubuntu22.04 安装 petalinux 2021.1
  • B+树高效实现与优化技巧
  • 微信小程序私密消息
  • 聚铭安全管家平台2.0实战解码 | 安服篇(三):配置保障 自动核查
  • yolov11的简单实例
  • 【密码学】4. 分组密码
  • 关闭 UniGetUI 自动 Pip 更新,有效避免 Anaconda 环境冲突教程
  • Python Pandas.merge函数解析与实战教程
  • 软件测试之功能测试
  • Ubuntu系统完整配置教程
  • unbuntn 22.04 coreutils文件系统故障
  • RabbitMQ快速入门
  • 基于FPGA和DDS原理的任意波形发生器(含仿真)
  • 【Unity】Application类常见路径一览表
  • 基于LangGraph Cli的智能数据分析助手
  • 主要分布于内侧内嗅皮层的层Ⅲ的网格-速度联合细胞(Grid × Speed Conjunctive Cells)对NLP中的深层语义分析的积极影响和启示
  • OpenCV(05)直方图均衡化,模板匹配,霍夫变换,图像亮度变换,形态学变换
  • nvim cspell
  • 基于 OpenCV 与 sklearn 的数字识别:KNN 算法实践
  • 123页PPT麦肯锡49个思维工具和方法论PPT
  • 一个典型的微控制器MCU包含哪些模块?
  • Java Collections工具类
  • 达梦有多少个模式