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

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.dtcms.com/a/303806.html

相关文章:

  • Effective C++ 条款10:令operator=返回一个reference to *this
  • 渗透测试与漏洞扫描有什么区别?
  • napping靶机教程(超详细讲解)
  • Leetcode-3152 特殊数组 II
  • TCPDump实战手册:协议/端口/IP过滤与组合分析指南
  • 【Java面试题】面向对象
  • 站点到站点-主模式
  • 【C++基础】函数调用约定(x86/ARM 差异对比):面试高频考点与真题解析
  • 面试遇到的问题3
  • java String类
  • 打印机错误0x0000011B,0x00000709,0x00000BCD,修复工具下载。
  • ElasticSearch 的3种数据迁移方案
  • Nginx安装流程
  • Vue.js 指令系统完全指南:深入理解 v- 指令
  • 递归推理树(RR-Tree)系统:构建认知推理的骨架结构
  • 【C++】1. C++基础知识
  • 传媒行业视频制作:物理服务器租用是隐藏的效率引擎
  • 【Golang】Go语言Map数据类型
  • Qt 并行计算框架与应用
  • 【go】语言的匿名变量如何定义与使用
  • TDengine 中 TDgpt 异常检测的机器学习算法
  • spring data mongodb 入门使用手册
  • [Linux入门] Linux 部署本地 APT 仓库及 NFS 共享服务全攻略
  • Java -- String类-StringBuffer类-StringBuilder类
  • uniapp开发微信小程序(新旧版本对比:授权手机号登录、授权头像和昵称)
  • K-近邻算法(KNN算法)的K值的选取--交叉验证+网格搜索
  • 搭建专属AI聊天网站:NextChat + 蓝耘MaaS平台完整部署指南
  • 2025年7月技术问答第4期
  • 树形结构递归查询与嵌套结构转换:Flask + PostgreSQL 完整实现
  • 力扣面试150题--位1的个数