枚举讲解及应用场景,应用要求,,使用枚举和#define的比较

简介: 枚举讲解及应用场景,应用要求,,使用枚举和#define的比较
#define _CRT_SECURE_NO_WARNINGS 1 
//枚举-----有限个类型,一一列举(和结构体对照记忆,但不一样)
//例如:一年的月份,有12月,可以一一列举...
//枚举优点:
//1.增加代码可读性和可维护性
//2.和#define定义的标识符比较枚举有类型检查,更严谨(例如第19行)
//3.防止命名污染(枚举定义的符号,只是在枚举内使用,有范围,,define定义的符号是全局的,名称会冲突)
//4.便于调试(如int a=red;int a=5   define定义,在调试时依旧看不到,枚举调试时能看见5和red)
//5.使用方便,不用像define一样每次只能定义一个常量
#include<stdio.h>
//enum color
//{
//    red,
//    green=8,//此时green表示8
//    blue//此时blue表示9
//};
//int main()
//{
//    enum color c= blue;//等价于enum color c= 2;但不能写成enum color c= 2;
//    printf("%d\n", red);//0
//    printf("%d\n", green);//8,,,,将1赋值改为8
//    printf("%d\n", blue);//9
//    return 0;
//}
//增加代码可读性----应用场景
enum Option
{
    EXIT,//0
    ADD,//1
    SUB,//2
    MUL,//3
    DIV,//4
};
    void menu()
{
    printf("************************************");
    printf("****    1.ADD        2.SUB      ****");
    printf("****    3.MUL        4.DIV      ****");
    printf("****          0.EXIT            ****");
    printf("************************************");
}
    int main()
    {
        int input = 0;
        do
        {
            enmu();
            printf("请选择\n");
            scanf("%d", &input);
            switch (input)
            {
            case ADD:
                //替换原来的case 1:
                    //ADD();
                break;
            case SUB://是:不是;
                break;
            case MUL:
                break;
            case DIV:
                break;
            }
        } while (input);
        return 0;
    }
相关文章
|
存储 缓存 资源调度
项目中的yarn.lock文件的作用
项目中的yarn.lock文件的作用
1235 0
项目中的yarn.lock文件的作用
|
11月前
|
敏捷开发 数据可视化 数据挖掘
从需求到交付:五种管理方法让研发流程更高效
产品研发团队面临需求多变、任务紧迫等挑战,需要高效的管理方法来提升协作和执行力。本文推荐五种方法:看板管理、MVP最小可行产品、用户故事地图、双钻模型及Scrum框架,帮助团队实现“巧干”。
278 1
从需求到交付:五种管理方法让研发流程更高效
|
10月前
|
Java 编译器 数据库
Java 中的注解(Annotations):代码中的 “元数据” 魔法
Java注解是代码中的“元数据”标签,不直接参与业务逻辑,但在编译或运行时提供重要信息。本文介绍了注解的基础语法、内置注解的应用场景,以及如何自定义注解和结合AOP技术实现方法执行日志记录,展示了注解在提升代码质量、简化开发流程和增强程序功能方面的强大作用。
348 5
|
11月前
|
IDE Linux 开发工具
物理设备命名规则
在Linux系统中,一切皆为文件,包括硬件设备。udev设备管理器负责将硬件名称规范化,以便用户通过设备文件名了解设备属性和分区信息。常见的设备文件名包括:IDE设备(/dev/hd[a-d])、SCSI、SATA、U盘(/dev/sd[a-p])、软驱(/dev/fd[0-1])、光驱(/dev/cdrom)和鼠标(/dev/mouse)。主分区或扩展分区编号从1到4,逻辑分区从5开始。
335 2
|
12月前
|
编解码 数据可视化 API
DIY可视化UniApp表格组件
DIY可视化UniApp表格组件
230 0
|
存储 缓存 监控
【嵌入式SD NAND】基于FATFS/Littlefs文件系统的日志框架实现
综上所述,构建一个基于FATFS/Littlefs文件系统的日志框架需要对文件系统的操作有深入理解,并以此为基础设计一套完整的日志处理机制。这样的框架不仅能够确保日志数据的完整性和系统的鲁棒性,同时还能够满足嵌入式系统对于性能和资源使用的严格要求。
526 4
|
存储 缓存 安全
【实战指南】轻松自研嵌入式日志框架,6大功能亮点一文读懂
本文介绍了如何自研一个嵌入式日志框架,涵盖了6大功能亮点:日志分级管理、异步处理与并发安全性、详尽上下文信息记录、滚动日志归档策略、高效资源利用和便捷API接口。设计上,通过日志过滤器、共享环形缓冲区和独立的日志管理进程实现日志管理。在并发环境下,使用信号量保证线程安全。日志文件按大小滚动并有序归档,同时考虑了资源效率。对外提供简洁的API接口,便于开发人员使用。文章还简述了实现细节,包括实时存储、日志滚动和共享内存管理。测试部分验证了日志回滚和实时打印功能的正确性。
506 4
|
存储 数据库 索引
数据库索引的作用
【7月更文挑战第2天】数据库索引的作用
355 3
|
SQL 存储 关系型数据库
关系性数据库操作语言(DML)
DML是关系型数据库管理系统的关键工具,用于查询、插入、修改和删除数据。主要包含SELECT(查询)、INSERT(插入)、UPDATE(修改)和DELETE(删除)语句。DML以其交互性和灵活性使用户能动态操作数据,但需注意事务管理以保持数据一致。DML与DDL(定义数据库结构)和DCL(控制访问权限)共同构建了完整的数据库语言体系,用于高效管理和存储数据。
509 2
|
XML API Android开发
Android 自定义View 之 Dialog弹窗
Android 自定义View 之 Dialog弹窗
427 1