C语言:内存对齐

//结构体内存对齐。

//#include <stdio.h>
//#include <stdlib.h>
//struct S1
//{
//	char c1;
//	int i;
//	char c2;
//};
//
//struct S2
//{
//	char c1;
//	char c2;
//	int i;
//};
//
//struct S3
//{
//	double d;
//	char c;
//	int i;
//};
//
//struct S4
//{
//	char c1;
//	struct S3 s3;
//	double d;
//};
//
//int main()
//{
//	
//	printf("%d\n",sizeof(struct S1));  //12
//	printf("%d\n",sizeof(struct S2));  //8
//	printf("%d\n",sizeof(struct S3));  //16
//	printf("%d\n",sizeof(struct S4));  //32
//
//
//	system("pause");
//	return 0;
//}

//修改默认对齐数。

//#include <stdio.h>
//#include <stdlib.h>
设置默认对齐数8;
//#pragma pack(8)    
//
//struct S1
//{
//	char c1;
//	int i;
//	char c2;
//};
//
取消默认对齐数,还原默认。
//
//#pragma pack()
//
//#pragma pack(1)
//
//struct S2
//{
//	char c1;
//	int i;
//	char c2;
//};
取消设置的默认对齐数,还原默认。
//#pragma pack()
//
//int main()
//{
//	//输出结果。
//
//	printf("%d\n",sizeof(struct S1));  //12
//	printf("%d\n",sizeof(struct S2));  //6
//
//	system("pause");
//	return 0;
//}

//结论:
//结构体在对齐方式不合适的时候,我们可以修改默认对齐数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值