社区
C语言
帖子详情
字节对齐!
退一步海阔天空l忍一时风平浪静
2009-10-21 09:29:40
想问一下各位大虾,字节对齐到底是个什么意思? 它是系统自己去对齐,还是需要人为的,在写程序时去对齐了?
如果是人为的去写对齐,该怎么写了?
谢谢!
...全文
79
4
打赏
收藏
字节对齐!
想问一下各位大虾,字节对齐到底是个什么意思? 它是系统自己去对齐,还是需要人为的,在写程序时去对齐了? 如果是人为的去写对齐,该怎么写了? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
slowgrace
2009-10-21
打赏
举报
回复
应该是系统自己去对齐。
写程序时,有时你需要根据系统对齐的规则正确计算变量的字节大小,计算错了会导致错误的运行结果甚至程序崩溃。
awperpvip
2009-10-21
打赏
举报
回复
#pragma pack(1) // 按照1字节方式进行对齐
struct TCPHEADER
{
short SrcPort; // 16位源端口号
short DstPort; // 16位目的端口号
int SerialNo; // 32位序列号
int AckNo; // 32位确认号
unsigned char HaderLen : 4; // 4位首部长度
unsigned char Reserved1 : 4; // 保留6位中的4位
unsigned char Reserved2 : 2; // 保留6位中的2位
unsigned char URG : 1;
unsigned char ACK : 1;
unsigned char PSH : 1;
unsigned char RST : 1;
unsigned char SYN : 1;
unsigned char FIN : 1;
short WindowSize; // 16位窗口大小
short TcpChkSum; // 16位TCP检验和
short UrgentPointer; // 16位紧急指针
};
#pragma pack() // 取消1字节对齐方式
xylicon
2009-10-21
打赏
举报
回复
用pack 和 pop,例如:
#pragma pack(push) //保存对齐状态
#pragma pack(4)//设定为4字节对齐
struct test
{
char m1;
double m4;
int m3;
};
#pragma pack(pop)//恢复对齐状态
昵称很不好取
2009-10-21
打赏
举报
回复
是系统去对齐,如果要设置对齐可以用#pragma pack(n),n为你想对齐的数字
字节跳动Vue3框架ArcoDesign Pro整合实战:前端篇
适用人群所有的IT从业者,尤其适合快速掌握新技术,快速增长工作经验人群,对教育公平,教育公益,教育爱心公益人士课程概述【※ 购买前提醒 ※】课程概述该互联网实战项目是基于字节跳动开源arco design产品框架,前后端分离,开发项目实战。本课程分为前端+后端共计2个课程,本课属于前端部分,后端属于另外课程。后端部分:SpringBoot+SpringSecurity+Mybatisplus+MySQL+Knife4j中后台项目产品实战,包括图形展示、权限管理、用户管理等功能 https://download.csdn.net/course/detail/37057 ArcoDesign 是一套设计系统的简称。ArcoDesign 的目标, 即通过通用的设计系统去解决产品中的体验问题, 并为产品设计提供指导原则解决业务问题,同时它能够促进设计部门和研发部门之间协作, 成为开发者之间沟通的语言。ArcoDesign 主要服务于字节跳动旗下中后台产品的体验设计和技术实现,主要由UED设计和开发同学共同构建及维护。【前端技术】Vue 互联网最火的前端框架Vue Router路由框架Vuex全局状态管理框架Axios前端 HTTP 框架Arco Design 前端模板
【C语言面试题】请使用宏定义实现
字节对齐
!
请使用C语言的宏定义实现一个功能,求得某个整型数M在N
字节对齐
的时,它的值大小。 说明: 1.M是一个非负整数; 2.N是2的整数倍,值可能是1,2,4,8,16等等。 要求: 1.不得使用除法(/); 2.不能使用函数实现,...
c语言union字节相同大小不同,C语言的struct/union
字节对齐
看一个始终困扰初学者的问题:
字节对齐
!先看四个重要的基本概念:1.数据类型自身的对齐值:对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,double类型,其自身对齐值为4,单位字节。2.结构体或者...
字节对齐
、8
字节对齐
在内存管理中经常使用
字节对齐
来管理分配的内存。 1、原理 2
字节对齐
:要求地址位为2, 4, 6, 8…,地址的二进制最后一位为0(2的1次方)。 4
字节对齐
:要求地址位为4,8,12,16…,地址的二进制最后两位为0(2的2...
深入理解
字节对齐
C语言--
字节对齐
基础知识了解一、操作系统位数、CPU位数、指令集1.操作系统--32-bit(x86)和64-bit(x64)(1)位数(2)64-bit2.处理器CPU位数3.CPU指令集4.寄存器5.关系6.计算机字长(机器字长)7.总结理解
字节对齐
二...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章