zoukankan      html  css  js  c++  java
  • C语言笔记(枚举)

    关于枚举,在我以前写程序的时候,几乎是没有使用过的,只是偶尔会在一下别人写的驱动库中有看到过。今天看了朱老师的视频,准备将枚举相关的东西总结一下。 

    一、关于枚举,你需要知道

    (1)在C语言中就是一些符号常量的集合。

    (2)枚举中的符号本质上是int类型的常量。

    (3)使用枚举时我们往往关注是符号本身,而不是符号的值是多少。

    (4)枚举可以将一些相关联的符号封装在一个枚举中,是一种多选一的。

    二、代码实践操作

    【例1】:枚举定义(方法1)

     1 #include <stdio.h>
     2 
     3 // 枚举定义:方法一
     4 enum week
     5 {
     6     SUN,
     7     MON,
     8     TUE,
     9     WEN,
    10     THU,
    11     FRI,
    12     SAT,
    13 };
    14 
    15 int main(void)
    16 {
    17     // 测试:方法一
    18     enum week today;   // 声明
    19     today = MON;
    20     printf("today = %d.
    ", today); // 结果是:today = 1.
    21 
    22     return 0;
    23 }

    结果:


    分析:说明枚举使用是可以直接用MON,而不需要使用“today.MON”,同时也说明,枚举中的定义过了符号不能在另一个符号中再定义。

    【例2】:枚举定义(方法2)

     1 // 枚举定义:方法二
     2 enum week
     3 {
     4     SUN,
     5     MON,
     6     TUE,
     7     WEN,
     8     THU,
     9     FRI,
    10     SAT,
    11 }today,yesterday;

    说明:使用的方法同上。

    【例3】:枚举定义(方法3)

     1 // 枚举定义:方法三
     2 enum
     3 {
     4     SUN,
     5     MON,
     6     TUE,
     7     WEN,
     8     THU,
     9     FRI,
    10     SAT,
    11 }today,yesterday;

    说明:看到这里是不是想起了结构体,例3与例2不同的是没有了week,但是对于枚举today的使用方法还是一样的。千万不要以为enum后面没有了东西就是错的了,这样定义也是正确的。

    【例4】:枚举定义(方法4)typedef的介入

     1 // 枚举定义:方法四
     2 typedef enum week
     3 {
     4     SUN,
     5     MON,
     6     TUE,
     7     WEN,
     8     THU,
     9     FRI,
    10     SAT,
    11 }WK;
    12 
    13 int main(void)
    14 {
    15     // 测试:方法四
    16     WK today;   
    17     today = SAT;
    18     printf("today = %d.
    ", today); 
    19     
    20     return 0;
    21 }

    结果:

    分析:将以上的程序结合学过的结构体的typedef,就会发现定义一个枚举时(wk today;这句就很好理解了)。

     注:以上程序是根据“朱老师物联网视频”中参考得到,特此申明。

  • 相关阅读:
    图像和流媒体 -- 帧率、分辨率、码流的概念和关系(转)
    Linux设备驱动(转)
    STM32开发 -- 4G模块开发详解(转)
    Linux下EC20实现ppp拨号(转)
    使用机智云APP控制战舰V3 (转)
    USB Host读取U盘成功
    FreeModbus在STM32上移植(转)
    处理分页操作
    HBase参数配置及说明(转)
    学习JNDI
  • 原文地址:https://www.cnblogs.com/zou107/p/4950158.html
Copyright © 2011-2022 走看看