类型别名 联合类型 枚举类型
2017-07-31 17:06
435 查看
typedef--给类型起别名
typedef int myINT;//关键字+类型+别名
typedef int * myPoint;
typedef struct NODE
{
int a;
}_NODE; //给结构体起别名
int main(void)
{
myINT a=12;
myPoint p;
printf("%d\n",a);
}
//声明一个联合的类型
/*******************************
//声明一个联合的类型
typedef union STU
{
char arr[5];//最大的放前面
char ch;
}_STU;
//1.联合是所有成员公用一个内存
//地址上理解:所有成员地址上是一样的
//2.联合的初始化:只允许初始化一个成员 默认是第一个
//编程建议:初始化最大空间的成员
//赋值也会覆盖,联合的成员值与最新的一条成员赋值有关
int main(void)
{
//声明一个联合的变量
//_STU aa;
//printf("%p,%p\n",&aa.ch,aa.arr);//可以看出 成员地址一样
//_STU aa={'a'};//初始化多个成员即会报错
_STU aa={"asd"};
printf("%c,%c\n",aa.ch,aa.arr[1]);
aa.ch='w';
printf("%c,%c\n",aa.ch,aa.arr[0]);
}
*****************************/
/*************************************************
//内容:联合大小
#pragma pack(2)//设置内存对齐数 比最大类型小有效果,否则按最大类型字节数对齐
//声明一个联合的类型
union STU
{
char arr[5];//最大的放前面
char ch;
// short sh;//2字节
int in;
};
//1.最大空间成员+最大数据类型 跟成员个数没关
//2.内存对齐有关,跟最大类型(成员类型)
int main(void)
{
printf("%d\n",sizeof(union STU));
}
*******************************************/
枚举类型的大小
/*****************************************
//内容: 枚举
enum STU //关键字enum +名字(可有可无)
{
black=1,red,blue=0,yellow,pink=21 //一些有意义的字符串 字符串不可以重复,但多个字符串可以代表同一个数
};
int main(void)
{
//声明一个枚举的变量
enum STU color=black;
int a=black;
char ch=black;//不适用跨平台
int tianqi=black;
printf("%d\n",color);
printf("%d,%d,%d,%d,%d\n",black,red,blue,yellow,pink);
//red=blue;参数 数字怎么用 这个别名怎么使用
//给整形常量取别名
//默认0,1,2,3,4....int
//指定值得位置向后 累加
//作用:增加程序的可读性 0 1
if(tianqi==black)
{
printf("晴天\n");
}
if(tianqi==blue)
{
printf("阴天\n");
}
}
**********************************/
/********************************
//内容:枚举变量的大小
enum STU //关键字enum +名字(可有可无)
{
black,red,blue,yellow
};
int main(void)
{
int a=black;
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(enum STU));
//枚举默认都是int类型 4字节 -231-1-231
//枚举的“成员”都是常量 即可以把枚举当int整型来理解
//枚举类型的大小--4个字节
//枚举为了规范,“成员”用int来装
}
*******************************/
/******************************************************
//内容:枚举类型的 大小都是4字节
enum //关键字enum +名字(可有可无)
{
black=0,red=1,blue=1,yellow,qwq
}b;
int main(void)
{
int bb=12;
printf("%d\n",sizeof(b));
b=12;
//int -2^31~2^31-1 0 1 2 3 集合 两者一样
//enum 5个int类型的数 集合 区别就是有别名
}
******************************************/
typedef int myINT;//关键字+类型+别名
typedef int * myPoint;
typedef struct NODE
{
int a;
}_NODE; //给结构体起别名
int main(void)
{
myINT a=12;
myPoint p;
printf("%d\n",a);
}
//声明一个联合的类型
/*******************************
//声明一个联合的类型
typedef union STU
{
char arr[5];//最大的放前面
char ch;
}_STU;
//1.联合是所有成员公用一个内存
//地址上理解:所有成员地址上是一样的
//2.联合的初始化:只允许初始化一个成员 默认是第一个
//编程建议:初始化最大空间的成员
//赋值也会覆盖,联合的成员值与最新的一条成员赋值有关
int main(void)
{
//声明一个联合的变量
//_STU aa;
//printf("%p,%p\n",&aa.ch,aa.arr);//可以看出 成员地址一样
//_STU aa={'a'};//初始化多个成员即会报错
_STU aa={"asd"};
printf("%c,%c\n",aa.ch,aa.arr[1]);
aa.ch='w';
printf("%c,%c\n",aa.ch,aa.arr[0]);
}
*****************************/
/*************************************************
//内容:联合大小
#pragma pack(2)//设置内存对齐数 比最大类型小有效果,否则按最大类型字节数对齐
//声明一个联合的类型
union STU
{
char arr[5];//最大的放前面
char ch;
// short sh;//2字节
int in;
};
//1.最大空间成员+最大数据类型 跟成员个数没关
//2.内存对齐有关,跟最大类型(成员类型)
int main(void)
{
printf("%d\n",sizeof(union STU));
}
*******************************************/
枚举类型的大小
/*****************************************
//内容: 枚举
enum STU //关键字enum +名字(可有可无)
{
black=1,red,blue=0,yellow,pink=21 //一些有意义的字符串 字符串不可以重复,但多个字符串可以代表同一个数
};
int main(void)
{
//声明一个枚举的变量
enum STU color=black;
int a=black;
char ch=black;//不适用跨平台
int tianqi=black;
printf("%d\n",color);
printf("%d,%d,%d,%d,%d\n",black,red,blue,yellow,pink);
//red=blue;参数 数字怎么用 这个别名怎么使用
//给整形常量取别名
//默认0,1,2,3,4....int
//指定值得位置向后 累加
//作用:增加程序的可读性 0 1
if(tianqi==black)
{
printf("晴天\n");
}
if(tianqi==blue)
{
printf("阴天\n");
}
}
**********************************/
/********************************
//内容:枚举变量的大小
enum STU //关键字enum +名字(可有可无)
{
black,red,blue,yellow
};
int main(void)
{
int a=black;
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(enum STU));
//枚举默认都是int类型 4字节 -231-1-231
//枚举的“成员”都是常量 即可以把枚举当int整型来理解
//枚举类型的大小--4个字节
//枚举为了规范,“成员”用int来装
}
*******************************/
/******************************************************
//内容:枚举类型的 大小都是4字节
enum //关键字enum +名字(可有可无)
{
black=0,red=1,blue=1,yellow,qwq
}b;
int main(void)
{
int bb=12;
printf("%d\n",sizeof(b));
b=12;
//int -2^31~2^31-1 0 1 2 3 集合 两者一样
//enum 5个int类型的数 集合 区别就是有别名
}
******************************************/
相关文章推荐
- 【c++】联合、枚举和类型别名
- 快速入门C++ 05(联合、枚举和类型别名)
- 联合、枚举和类型别名 - C++快速入门13
- 联合、枚举和类型别名 - C++快速入门13
- 自定义类型部分知识写一篇博客。 知识点: >结构体类型创建 >结构体初始化 >结构体内存对齐 >位段,位段计算机大小。 >枚举+联合。
- 自定义类型(结构体,枚举,联合,位段)
- C语言_自定义类型_枚举 联合
- 自定义类型:结构体,枚举,联合
- c++高级---C++ 中的枚举类型----联合类型(总结)
- MOOC——C语言11:结构类型:枚举,结构,联合
- 自定义类型(结构体,位段,枚举,联合)总结
- C++:C++背景、名字空间、结构联合枚举、字符串类型
- 自定义类型(结构体、枚举、联合)以及内存对齐问题
- unit01_C++语言背景介绍 、 第一个C++程序 、 名字空间 、 结构、联合和枚举 、 布尔型与操作符别名
- 自定义类型:结构体,枚举,联合部分知识总结
- 自定义类型——结构体、枚举、联合
- 自定义类型——结构体,枚举,联合
- 自定义类型(结构体、位段、枚举和联合)
- 自定义类型:结构体 位段 枚举 联合
- 自定义类型:结构体、枚举、联合