【三支火把】---# program (n)以及C语言字符对齐的总结
2024-09-07 14:18:22
#pragma pack(n)
当n大于结构体中内存占用最大的变量内存时,将按照最大内存变量的字节占用数进行对齐,否则,就根据n进行对齐
情况一:
例一:
#pragma pack(4)
struct node{
int a;
char b;
char c;
};
struct node n;
printf("%d\n",sizeof(n));
结果:测试结果为6
例二:
#pragma pack(4)
struct node{
int a;
char b;
int c;
};
struct node n;
printf("%d\n",sizeof(n));
结果:测试结果为12
总结:例一中,a占4字节,b占1字节,由于b和c之和不满4字节,所以b和c共占用4个字节对齐。
例二中,a,b均一样,但是由于c占4字节,必须重新开辟4字节进行对齐,所以最终为12字节。
情况二:
#pragma pack(5)
struct node{
long a;
char b;
char c;
};
struct node n;
printf("%d\n",sizeof(n));
根据测试,最终结果为8,可见,是根于变量n的字节占用数进行对齐的。
最新文章
- LINK1123:failure during conversion to COFF:file invalid or corrupt
- Delphi以及三方控件的源代码规模
- 一个网页抓取的类支持get+post+cookie存储
- 轻松解决Linux安装Eclipse方法
- codeforces105d Bag of mice ——概率DP
- java jps命令
- linux中/etc/fstab文件删除或修改了,导致系统无法启动
- OpenFlow Switch学习笔记(五)——Group Table、Meter Table及Counters
- android绘画折线图二
- yar
- PopupWindow 的使用
- C# 经典入门11章,比较
- json基础教程|理解Json
- Nodejs进阶:MD5入门介绍及crypto模块的应用
- 201621123068 《Java程序设计》第1周学习总结
- 自学Python,新手上路,好资源免费分享
- Android为TV端助力:intent传递消息
- K2百家讲坛 | 越秀地产:K2为房企数字化转型带来更多可能
- c#qq发邮件
- WeUI0.6.0有一个Calendar在浏览器下无法直接打开问题