作用:调整结构体的边界对齐,让其以一个字节对齐;
#pragma pack(1) 使结构体按1字节方式对齐例如:struct sample{char a;double b;};若不用#pragma pack(1)和#pragma pack()括起来,则sample按编译器默认方式对齐(成员中size最大的那个)。即按8字节(double)对齐,则sizeof(sample)==16.成员char a占了8个字节(其中7个是空字节)
若用#pragma pack(1),则sample按1字节方式对齐sizeof(sample)==9.(无空字节)
比较节省空间啦,有些场和还可使结构体更易于控制
(2) #pragma pack(push,1)
这是给编译器用的参数设置,有关结构体字节对齐方式的设置大概是指把原来对齐方式设置压栈,并设新的设置为1

pragma pack(1) and #pragma pack(push,1)相关推荐

  1. 详解C/C++中的的:#pragma pack(push) 、#pragma pack(pop) 和#pragma pack()

    前言 我们知道结构体内存对齐字节可以通过#pragma pack(n) 的方式来指定. 但是,有没有想过一个问题,某些时候我想4字节对齐,有些时候我又想1字节或者8字节对齐,那么怎么解决这个问题呢? ...

  2. #pragma warning(pop) 和 #pragma warning(push)的作用

    #pragma warning(push)是保存当前的编译器警告状态: #pragma warning(pop)是恢复原先的警告状态. 例如: #pragma warning( push ) #pra ...

  3. pragma comment的使用 pragma预处理指令详解

    pragma comment的使用 pragma预处理指令详解 #pragma comment( comment-type [,"commentstring"] ) 该宏放置一个注 ...

  4. c语言 pragma指令,C语言#pragma指令用法

    引导语:在所有的预处理指令中,#Pragma指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.以下是百分网小编分享给大家的C语言#pragma指令用法,欢迎阅读! # ...

  5. python中pack函数_关于pack()函数的文章推荐10篇 - pack

    php读写二进制文件可以使用pack和unpack函数. 今天要处理一个二进制文件的问题,所以需要用一下,特意了解一下pack的用法,unpack用法与此类似. 简单来说,pack函数就是给一个目标格 ...

  6. linux下打开pack文件怎么打开,PACK 文件扩展名: 它是什么以及如何打开它?

    了解 PACK 问题 打开 PACK 文件过程中所遇到的常见问题 CustoPack Tools 未安装 你尝试加载 PACK 文件并收到错误,例如 "%%os%% 无法打开 PACK 文件 ...

  7. 【C语言】#pragma pack(1) 和#pragma pack()

    设置结构体的边界对齐为1个字节,也就是所有数据在内存中是连续存储的. 比如你在C语言中定义下面这样的结构体: struct s { char j; int i; }; 然后在主函数中写一句:print ...

  8. 电池pack结构_3C锂电池pack中,使用弹片微针模组测试基本性能和大电流

    3C锂电池有着循环寿命长.低温度放电性能好.续航能力强.比能量高.荷电保持能力强的优点,在3c消费电子领域方面应用范围广泛.由于3c锂电池的广泛应用,需求量极大,很多厂家开始自己掌握3C锂电池pack ...

  9. python struct pack解析_python struct pack

    这个struct主要是用来处理C结构数据的,读入时先转换为Python的字符串类型,然后再转换为Python的结构化类型,比如元组(tuple)啥的~ 一般输入的渠道来源于文件或者网络的二进制流. 在 ...

最新文章

  1. windows 连Linux,Windows下访问Linux资源
  2. android 模拟器配置上网_10 款主机模拟器,让你畅玩全球大作,嗨到飞起
  3. 01.轮播图之二 :tableView 轮播
  4. 番茄花园 Ghost XP SP3 金秋国庆版 2013.AA0
  5. Java Character 类
  6. ARouter源码探究
  7. 《实施Cisco统一通信管理器(CIPT2)》一1.2 概述部署多站点环境时将会遇到的挑战...
  8. 三菱880彩铅和uni的区别_彩铅测评|150色荷尔拜因彩铅初体验
  9. 面向对象(封装对象private关键字)
  10. 在Mac OS X下编译 boost|building boost library under mac os x
  11. 信号量函数(semget、semop、semctl)
  12. 樱花FRP(SAKURA FRP)远程桌面+rdpwrap绕过限制
  13. Scala语言的特点
  14. 生产制造业如何谋求数字化转型?需要哪些信息化系统做支撑?
  15. 爬虫实例:唐诗宋词爬虫
  16. 黑客利用0day,从General Bytes比特币ATM盗走150万美元
  17. 【最优化】最优化的相关条件
  18. 基于QCustomplot实现帕累托图
  19. FCPX:600种VHS Studio转场效果合集
  20. ABAQUS学习之路

热门文章

  1. android学汇资料总整理
  2. PHP-代码审计-命令执行
  3. Swift之深入解析如何实现Promise
  4. iOS经典面试题之使用runtime associate方法关联的对象释放及dealloc底层原理
  5. MapReduce不同进度的Reduce都在干什么?
  6. 679. 24 Game 24 点游戏
  7. Host key verification failed.
  8. 【Linux网络编程】UDP编程
  9. 【Linux】一步一步学Linux——ssh-copy-id命令(180)
  10. [Qt教程] 第47篇 进阶(七) 定制Qt帮助系统