博客
关于我
结构体内存对齐——2
阅读量:581 次
发布时间:2019-03-11

本文共 929 字,大约阅读时间需要 3 分钟。

重新优化后的内容:

在实际开发中,我们需要了解如何正确地对齐和解析各种数据格式。以下是一个关于GIF头片结构对齐方式的实际示例:

#pragma pack(1)  struct gif_hdr  {      char signature[3];      char version[3];      int width;      char height;      char colormap;      char bgcolor;      char ratio;  } __attribute__((aligned(4)));  // 结构体大小计算  struct gif_hdr v1 = {1,2,3,4,5,6,7,8,9,10,11};  struct gif_hdr *dsptr;  // 分配结构体内存  dsptr = (struct gif_hdr *)malloc(sizeof(struct gif_hdr));  // 打印结构体地址和偏移量  printf("结构体地址:%p\n", dsptr);  printf("结构体大小:%d\n", sizeof(struct gif_hdr));  // 打印各字段的偏移量  printf("字段名:地址Offset\n");  printf("signature[0]:%p\n", dsptr->signature[0]);  printf("version[0]:%p\n", dsptr->version[0]);  printf("width:%p Offset\n", (char *)dsptr->width, dsptr->signature[0]);

输出结果:

结构体地址:006E1898

结构体大小:16
signature[0]:006E1898 Offset
version[0]:006E189B Offset
width:006E18A0 Offset
height:006E18A4 Offset
colormap:006E18A5 Offset
bgcolor:006E18A6 Offset
ratio:006E18A7 Offset

转载地址:http://qjrvz.baihongyu.com/

你可能感兴趣的文章
OpenCV与AI深度学习 | YOLOv11来了:将重新定义AI的可能性
查看>>
OpenCV与AI深度学习 | YOLOv8自定义数据集训练实现火焰和烟雾检测(代码+数据集!)
查看>>
OpenCV与AI深度学习 | YOLOv8重磅升级,新增旋转目标检测,又该学习了!
查看>>
OpenCV与AI深度学习 | 一文带你读懂YOLOv1~YOLOv11(建议收藏!)
查看>>
OpenCV与AI深度学习 | 五分钟快速搭建一个实时人脸口罩检测系统(OpenCV+PaddleHub 含源码)
查看>>
OpenCV与AI深度学习 | 什么是 COCO 数据集?
查看>>
OpenCV与AI深度学习 | 低对比度缺陷检测应用实例--LCD屏幕脏污检测
查看>>
OpenCV与AI深度学习 | 使用 MoveNet Lightning 和 OpenCV 实现实时姿势检测
查看>>
OpenCV与AI深度学习 | 使用 OpenCV 创建自定义图像滤镜
查看>>
OpenCV与AI深度学习 | 使用 SAM 和 Grounding DINO 分割卫星图像
查看>>
OpenCV与AI深度学习 | 使用OpenCV图像修复技术去除眩光
查看>>
OpenCV与AI深度学习 | 使用OpenCV检测并计算直线角度
查看>>
OpenCV与AI深度学习 | 使用OpenCV轮廓检测提取图像前景
查看>>
OpenCV与AI深度学习 | 使用Python和OpenCV实现火焰检测(附源码)
查看>>
OpenCV与AI深度学习 | 使用PyTorch进行小样本学习的图像分类
查看>>
OpenCV与AI深度学习 | 使用YOLO11实现区域内目标跟踪
查看>>
OpenCV与AI深度学习 | 使用YOLOv8做目标检测、实例分割和图像分类(包含实例操作代码)
查看>>
OpenCV与AI深度学习 | 使用单相机对已知物体进行3D位置估计
查看>>
OpenCV与AI深度学习 | 初学者指南 -- 什么是迁移学习?
查看>>
OpenCV与AI深度学习 | 十分钟掌握Pytorch搭建神经网络的流程
查看>>