C语言共用体和枚举的使用

简介: C语言共用体和枚举的使用

一、共用体使用


#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
union Aiyou
{
       int a;
       char b;
       double c;
};
int main() {
       printf("共用体大小:%d\n", sizeof(union Aiyou));
       union Aiyou ay;
       printf("a的地址:%p\nb的地址:%p\nc的地址:%p\n", &ay.a, &ay.b, &ay.c);
       system("pause");
       return 0;
}

运行结果:


共用体大小:8


a的地址:00D7F740


b的地址:00D7F740


c的地址:00D7F740


请按任意键继续. . .


1、共同体的结构和结构体差不多,就是关键字不一样


2、结构体大小是成员的总和


3、共用体大小是最大化成员的大小


4、公用体所有成员首地址都一样



二、枚举使用


#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
enum Aiyou
{
       a,b,c,d=10,e,f
};
int main() {
       printf("共用体大小:%d\n", sizeof(enum Aiyou));
     
       enum Aiyou ay;
       int x = 0;
       if (x==a)
       {
              printf("a\n");
       }
       int y = 11;
     
       if (y==e)
       {
              printf("e\n");
       }
       system("pause");
       return 0;
}


1、枚举默认第一个成员为0,后面依次加1


2、如果中间有赋值,d=10,后面依次加1


三、typedef使用


#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
typedef struct Aiyou sa;
struct Aiyou
{
       int year;
       char* name;
       char* zdg;
};
//声明一个函数setaiyou,参数是一个指针
void setaiyou(struct Aiyou aayy)
{
       printf("专辑名称:%s,主打歌:%s,发行时间:%d\n", aayy.name, aayy.zdg,  aayy.year);
}
int main() {
       sa ay;
       ay.year = 2016;
       ay.name = "周杰伦的床边故事";
       ay.zdg = "告白气球";
       printf("专辑名称:%s,主打歌:%s,发行时间:%d\n", ay.name, ay.zdg, ay.year);
       //调用该函数,将ay对象传递过去
       setaiyou(ay);
       system("pause");
       return 0;
}


1、给已存在的类型起别名


2、不能创建新类型


3、typedef struct Aiyou sa;


创建对象就不用struc Aiyou ay;直接用sa ay;

目录
相关文章
|
1天前
|
存储 编译器 C语言
【C语言】自定义类型:联合与枚举的简明概述
【C语言】自定义类型:联合与枚举的简明概述
|
2月前
|
存储 编译器 C语言
【C语言篇】自定义类型:联合体和枚举详细介绍
像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。
36 1
|
4月前
|
C语言
枚举(C语言)
枚举(C语言)
|
4月前
|
编译器 C语言 C++
【C语言基础】:自定义类型(二) -->联合和枚举
【C语言基础】:自定义类型(二) -->联合和枚举
|
4月前
|
C语言
C语言学习记录——枚举(定义、与结构体的区别、优点)
C语言学习记录——枚举(定义、与结构体的区别、优点)
47 3
|
4月前
|
存储 C语言
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
55 2
|
4月前
|
C语言
深入挖掘C语言之——枚举
深入挖掘C语言之——枚举
20 1
|
4月前
|
编译器 C语言
C语言枚举:深入探索下标默认值、自定义值及部分自定义情况
C语言枚举:深入探索下标默认值、自定义值及部分自定义情况
|
4月前
|
编译器 C语言 C++
【海贼王编程冒险 - C语言海上篇】自定义类型:结构体,枚举,联合怎样定义?如何使用?
【海贼王编程冒险 - C语言海上篇】自定义类型:结构体,枚举,联合怎样定义?如何使用?
29 0
|
4月前
|
C语言
【C语言】:枚举和联合
【C语言】:枚举和联合
20 0