今天学习了一下内容,还要贴代码吗?
我的程序:
(1)关于对齐补齐:
对齐:一个变量的开始地址是这个变量本身所占字节数倍数开始的,若超过四个将是4的倍数。
补齐:就是在所占内存的末尾,最后变量所占字节是整个所占空间的倍数
<span style="font-size:18px;">#include <stdio.h>
typedef struct goods {
char name[17];//17
double price;//8
char spcial;//1
int num;//4
short saled;//2
}gs;
int main() {
gs a;
printf("长度是%d\n", sizeof(a));
return 0;
}</span>
(2)位段
直接由用户指定占多少位
<span style="font-size:18px;">#include <stdio.h>
struct mode {
unsigned char userread : 1;//只能用unsigned char ,unsigned int
unsigned char userwrite : 1;
unsigned char userexecute : 1;
};
int main() {
struct mode a = {1, 1, 1};
printf("长度是%d\n", sizeof(a));
printf("%d%d%d\n", a.userread, a.userwrite, a.userexecute);
return 0;
}</span>
(3)联合union
所有成员共用同一个地方,修改任何一个成员,其他成员也受影响。
要知道大端和小端的概念