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类型的数 集合 区别就是有别名
}
******************************************/
相关文章
- 深入浅出MySQL++数据库开发、优化与管理维护+第2版+唐汉明 -- 存储引擎 - 数据类型 - 字符集和校验规则 -
- sqlserver可将字符转成数字再进行sum,如果varchar类型中存放的都是数字
- javascript学习笔记2-typeof、Number类型、Boolean()
- Elasticsearch入门必备——ES中的字段类型以及常用属性
- 解剖SQLSERVER 第四篇 OrcaMDF里对dates类型数据的解析(译)
- 痞子衡嵌入式:IAR在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致(J-Link / CMSIS-DAP)
- 痞子衡嵌入式:Keil在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致(J-Link/DAPLink)
- java中的类型比较
- Spring框架xml配置文件 复杂类型属性注入——数组 list map properties DI dependency injection 依赖注入——属性值的注入依赖于建立的对象(堆空间)
- Spring框架context的注解管理方法之二 使用注解注入基本类型和对象属性 注解annotation和配置文件混合使用(半注解)