多个变量共用同一块内存空间,在同一时刻只有这一种变量起作用。
#include
#include
#include
#define _CRT_SECURE_NO_WARNINGS
// 定义联合体 三种类型共用同一块内存空间
union mi
{
char a;
short b;
int c;
};
int main()
{
union mi tmp;
tmp.a = 0x01;// 占用一个字节
tmp.b = 0x0102;// 占用两个字节
tmp.c = 0x01020304;// 占用四个字节
// 所以共用体这块内存空间最后所存放的一定是01020304
return 0;
}
#include
#include
#include
#define _CRT_SECURE_NO_WARNINGS
// 定义联合体 三种类型共用同一块内存空间
union mi
{
char a;
short b;
int c;
};
int main()
{
union mi tmp;
tmp.a = 0x01;// 占用一个字节
tmp.c = 0x01020304;// 占用四个字节
tmp.b = 0x0a0b;// 占用两个字节
// 所以共用体这块内存空间最后所存放的一定是01020a0b
printf("%x\n",tmp.a);
printf("%x\n",tmp.b);
printf("%x\n",tmp.c);
return 0;
}
判断计算机是大端存储还是小段存储
#include
#include
#include
#define _CRT_SECURE_NO_WARNINGS
// 定义联合体 三种类型共用同一块内存空间
union mi
{
short b;
char buf[2];
};
int main()
{
union mi tmp;
tmp.b = 0x0102;//赋值 01 高地址 02 低地址
if(tmp.buf[0] == 0x01)
{
printf("big\n");// tmp.buf[0] 一定存的是低地址 低地址存储的是01
}
else
{
printf("little\n");// 小端
}
printf("%d\n",sizeof(tmp));// 四个字节
return 0;
}
枚举:将变量的值一一列举出来,变量的值只限于列举出来的值得范围内。
枚举类型定义:
enum 枚举名
{
枚举值表
};
枚举就是常量
#include
#include
#include
#define _CRT_SECURE_NO_WARNINGS
enum ab{SUN,RAIN,SNOW};// SUN = 0 RAIN = 1 SNOW = 2 初始化 常量
int main()
{
printf("%d %d %d",SUN,RAIN,SNOW);// 打印 0 1 2
return 0;
}
#include
#include
#include
#define _CRT_SECURE_NO_WARNINGS
// enum ab{SUN,RAIN,SNOW};// SUN = 0 RAIN = 1 SNOW = 2 初始化 常量
enum booll {False,True};// 定义布尔变量 0 1
int main()
{
printf("%d %d",False,True);// 打印 0 1
return 0;
}
#include
#include
#define _CRT_SECURE_NO_WARNINGS
typedef int u32;
int main()
{
int a = 10;
u32 b = 1;
printf("%d %d",sizeof(a),sizeof(b));
}
#include
#include
#define _CRT_SECURE_NO_WARNINGS
typedef int u32;
struct tt{
int id;
int age;
};
typedef struct tt TT;// 取别名
int main()
{
int a = 10;
u32 b = 1;
printf("%d %d",sizeof(a),sizeof(b));
TT tmp;
tmp.id = 10;
tmp.age = 1;
printf("%d %d",tmp.id,tmp.age);
}