数据结构的字节对齐

struct student
{
char  name[5];
int   num;
short score;
}


|char|char|char|char|
|char|----|----|----|
|--------int--------|
|--short--|---------|
======================
struct student
{
int num;
char name[5];
short score;
}


|--------int--------|
|char|char|char|char|
|char|----|--short--|


=======================


struct test1
{
int a;
int b[4];
}


|--------int--------|
|--------int--------|
|--------int--------|
|--------int--------|
|--------int--------|
=======================
struct test2
{
char   a;
int    b;
double c;
bool   d;
}


|char|----|----|----|
|--------int--------|
|--------ddd--------|
|--------ddd--------|
|bool|----|----|----|


========================
struct test3
{
char a;
long b;
static long c; //静态变量
}


sizeof(test3) = 
sizeof(a) + sizeof(b) = 8 
sizeof计算的是在栈中分配的空间的大小,而static变量是存放在全局数据区中的,固不计算在内。


==================
union  mm
{
char a;
int  b[5];
double  c;
int  d[3];
}


==================
#include <stdio.h>
#pragma pack()




struct student
{
char  name[5];
int   num;
short score;
}


|char|char|
|char|char|
|char|----|
|---int---|
|---int---|
|--short--|


优点:
能够更充分的利用存储空间
缺点:
降低计算机读数据的速度,是一种以 时间换空间的方式








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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值