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--|
优点:
能够更充分的利用存储空间
缺点:
降低计算机读数据的速度,是一种以 时间换空间的方式
{
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--|
优点:
能够更充分的利用存储空间
缺点:
降低计算机读数据的速度,是一种以 时间换空间的方式