基于proteus的51单片机仿真实例四十六、C语言的枚举类型演示实例
来源:互联网 发布:抽奖软件可内定 编辑:程序博客网 时间:2024/06/05 01:02
1、如果一个变量只有几种可能的值,那么可以将该变量定义为枚举类型。所谓“枚举”是将变量的值一一列举出来,变量的取值只限于列出的范围。
枚举定义的语句格式如下:
enum 枚举名{枚举值列表}变量列表;
定义和说明也可以分两句完成:
enum 枚举名{枚举值列表};
enum 枚举名 变量列表;
例如:今天是星期几,结果只能是星期一~星期日这七种。因此可以定义枚举变量:
enum weekday{mon,tue,wed,thu,fri,sat,sun}date1,date2;
或者:
enum weekday{mon,tue,wed,thu,fri,sat,sun};
enum weekday date1,date2;
2、枚举类型的说明
1)在C编译器中对枚举元素按常量处理,因此也称为枚举常量(注意:不能对枚举元素进行赋值)。
2)枚举元素作为常量,它是有值的,C语言编译时按定义时的顺序使他们的值为0,1,2,3...,也可以改变枚举元素的值,在定义时直接指定元素的值;
3)枚举值可以用来做比较判断,枚举值的比较规则是按其在定义时的顺序号比较。如果定义时未人为指定,则第一个枚举元素的值默认为0;
4)一个整数不能直接付给一个枚举常量,他们属于不同的类型,应先进行强制类型转换才能赋值
3、本例演示枚举类型的定义、枚举变量的定义、枚举元素的引用。
4、在keil c51中新建项目文件ex35,编写如下程序代码,编译并生成ex35.hex文件。
//实例35:枚举类型数据演示实例
#include <reg51.h> // 包含头文件
void delay(void) //延时函数
{
unsigned int i,j;
for(i = 0;i < 5000;i++)
for(j = 0;j < 50;j++);
}
{
unsigned int i,j;
for(i = 0;i < 5000;i++)
for(j = 0;j < 50;j++);
}
void main(void)
{
enum weekday{mon=2,tue,wed,thu,fri,sat,sun}; //定义枚举数据类型
enum weekday num1; //定义枚举变量
{
enum weekday{mon=2,tue,wed,thu,fri,sat,sun}; //定义枚举数据类型
enum weekday num1; //定义枚举变量
num1 = sat; //给枚举变量赋值
P0 = num1; //送P0口显示
delay();
P0 = num1; //送P0口显示
delay();
num1 = (enum weekday)3; //使用强制类型转换,将整型值赋给枚举变量
if(num1 == thu) //用枚举值进行判断
{
P0 = 0xf0; //
}
else
{
P0 = 0x0f;
}
{
P0 = 0xf0; //
}
else
{
P0 = 0x0f;
}
while(1)
{
}
}
{
}
}
5、在proteus中新建仿真文件ex35.dsn,原理图如下图所示:
6、将ex35.hex文件载入at89c51中,启动仿真,运行结果如下
0 0
- 基于proteus的51单片机仿真实例四十六、C语言的枚举类型演示实例
- 基于proteus的51单片机仿真实例二十七、C语言的语句演示实例
- 基于proteus的51单片机仿真实例四十二、C语言的二维数组演示实例
- 基于proteus的51单片机仿真实例四十三、C语言的字符串数组演示实例
- 基于proteus的51单片机仿真实例四十四、C语言的结构体演示实例
- 基于proteus的51单片机仿真实例四十五、C语言的共用体演示实例
- 基于proteus的51单片机仿真实例四十七、C语言的指针演示实例
- 基于proteus的51单片机仿真实例四十八、C语言的指针数组演示实例
- 基于proteus的51单片机仿真实例四十九、C语言数组的指针演示实例
- 基于proteus的51单片机仿真实例二十一、C语言的自增和自减运算演示实例
- 基于proteus的51单片机仿真实例二十八、C语言的if条件语句演示实例
- 基于proteus的51单片机仿真实例三十三、C语言的goto无条件转移语句演示实例
- 基于proteus的51单片机仿真实例十二、51单片机的C语言程序结构
- 基于proteus的51单片机仿真实例二、关于proteus
- 基于proteus的51单片机仿真实例三十、C语言的for循环语句
- 基于proteus的51单片机仿真实例三十一、C语言的while循环语句
- 基于proteus的51单片机仿真实例三十二、C语言的do-while循环语句
- 基于proteus的51单片机仿真实例三十四、C语言的break语句
- Easy-29
- Bootstrap之辅助类样式,响应式工具和小图标组件
- ActiveMQ的使用教程
- nginx实现集群服务器的负载均衡
- 一个字符串中查找第一个只出现一次的字符。 要求复杂度为O(N).
- 基于proteus的51单片机仿真实例四十六、C语言的枚举类型演示实例
- 杭电1728逃离迷宫解法二 BFS 搜索
- aoj-2249 Road Construction 单源最短路dijkstra+堆优化(模板)
- 面向对象的六大原则(推荐)
- Nginx+Tomcat配置多个二级域名
- 移动端1px边框 -- 伪元素
- apache 自带的 压力测试
- Elasticsearch(十一)【NEST高级客户端--聚合】
- Sort 归并排序求逆序对