当前位置: 首页 > news >正文

网站建设二次开发网线制作过程图片

网站建设二次开发,网线制作过程图片,seo建站还有市场吗,设计新颖的网站建设枚举详解 语法格式使用枚举类型对变量进行声明枚举声明的注意事项枚举变量的赋值使用案例综合使用 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作。 #define MON 1 #define TUE 2 #define WED 3 #define…

枚举详解

      • 语法格式
      • 使用枚举类型对变量进行声明
      • 枚举声明的注意事项
      • 枚举变量的赋值
      • 使用案例
        • 综合使用

在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作。

#define MON   1
#define TUE   2
#define WED   3
#define THU   4
#define FRI   5
#define SAT   6
#define SUN   7

对此,C语言提供了更好的方式:枚举类型(enumerated type)

可以用枚举类型(enumerated type)声明符号名称来表示整型常量。使用enum关键字,可以创建一个新“类型”并指定它可具有的值。枚举类型的目的是提高程序的可读性。它的语法与结构的语法相同。

注:(实际上,enum 常量是int类型,因此,只要能使用int类型的地方就可以使用枚举类型

语法格式

enum 枚举类型标识名 {枚举成员1, 枚举成员2, … , 枚举成员n};

enum DAY   {MON, TUE, WED, THU, FRI, SAT, SUN};
enum spectrum  {red = 1, orange, yellow, green, blue, violet};enum DAY COLOR = MON;
enum spectrum color = red;printf("%d\n", COLOR);  // 0
printf("%d\n", color);  // 1

(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。

(2) DAY, spetrum 是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。

(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。

(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。

(5) 枚举型是预处理指令#define的替代。

(6) 类型定义以分号;结束。

使用枚举类型对变量进行声明

方法一、枚举类型的定义和变量的声明分开

enum DAY
{MON=1, TUE, WED, THU, FRI, SAT, SUN
};enum DAY tomorrow; //变量tomorrow的类型为枚举型enum DAY
enum DAY good_day, bad_day; //变量good_day和bad_day的类型均为枚举型enum 

方法二:类型定义与变量声明同时进行:

enum //跟第一个定义不同的是,此处的标号DAY省略,这是允许的。
{saturday,sunday = 0,monday,tuesday,wednesday,thursday,friday
} workday; //变量workday的类型为枚举型enum DAYenum BOOLEAN { false, true } end_flag, match_flag; 
//定义枚举类型并声明了两个枚举型变量 end_flag, match_flag

方法三:用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明:

typedef enum workday
{saturday,sunday = 0,monday,tuesday,wednesday,thursday,friday
} workday; 
//此处的workday为枚举型enum workday的别名workday today, tomorrow; 
// 变量today和tomorrow的类型为枚举型workday,也即enum workday
// enum workday中的workday可以省略:

也可以用这种方式:

typedef enum workday
{saturday,sunday = 0,monday,tuesday,wednesday,thursday,friday
};workday today, tomorrow; 
//变量 today和 tomorrow的类型为枚举型workday,也即enum workday

枚举声明的注意事项

注意:同一个程序中不能定义同名的枚举类型,不同的枚举类型中也不能存在同名的命名常量。错误示例如下所示:

错误声明一:存在同名的枚举类型

typedef enum
{wednesday,thursday,friday
} workday;typedef enum WEEK
{saturday,sunday = 0,monday,
} workday;// 定义了两个相同的枚举类型 workday;

错误声明二:存在同名的枚举成员

typedef enum
{wednesday,thursday,friday
} workday_1;typedef enum WEEK
{wednesday,sunday = 0,monday,
} workday_2;//在枚举类型 workday_1 与 枚举类型 workday_2中 都有枚举成员 wednesday;

注:在同一个程序中不能定义相同的枚举类型名,以及所有的枚举成员不能相同,使得枚举类型名可以不定义。

枚举变量的赋值

(1) 默认情况下,枚举列表中的常量都被赋予0、1、2等。因此,下面的声明中nina的值是3:
enum kids {nippy, slats, skippy, nina, liz};

(2) 在枚举声明中,可以为枚举常量指定整数值:
enum levels {low = 100, medium = 500, high = 2000};

(3) 如果只给一个枚举常量赋值,没有对后面的枚举常量赋值,那么后面的
常量会被赋予后续的值。

例如,假设有如下的声明:
enum feline {cat, lynx = 10, puma, tiger};

那么,cat的值是0(默认),lynx、puma和tiger的值分别是10、11、12。

使用案例

枚举类型的目的是为了提高程序的可读性和可维护性

(一)类型定义,变量声明,赋初值同时进行。

#include <stdio.h>/* 定义枚举类型,同时声明该类型的三个变量,并赋初值。它们都为全局变量 */
enum DAY
{MON=1, TUE,WED,THU,FRI,SAT,SUN 
}
yesterday = MON, today = TUE, tomorrow = WED;/* 定义三个具有基本数据类型的变量,并赋初值。它们都为全局变量 */
int x = 10, y = 20, z = 30;void main()
{printf("%d %d %d \n", x, y, z); //输出:10 20 30printf("%d %d %d \n", yesterday, today, tomorrow); //输出:1 2 3
}
#include<stdio.h>enum
{BELL          = '\a',BACKSPACE = '\b',HTAB         = '\t',RETURN      = '\r',NEWLINE    = '\n',VTAB         = '\v',SPACE       = ' '
};enum BOOLEAN { FALSE = 0, TRUE } match_flag;void main()
{int index = 0;int count_of_letter = 0;int count_of_space = 0;char str[] = "I'm Ely efod";match_flag = FALSE;for(; str[index] != '\0'; index++)if( SPACE != str[index] )count_of_letter++;else{match_flag = (enum BOOLEAN) 1;count_of_space++;}printf("%s %d times %c", match_flag ? "match" : "not match", count_of_space, NEWLINE);printf("count of letters: %d %c%c", count_of_letter, NEWLINE, RETURN);
}

枚举类型与sizeof运算符

#include <stdio.h>enum escapes
{BELL      = '\a',BACKSPACE = '\b',HTAB      = '\t',RETURN    = '\r',NEWLINE   = '\n',VTAB      = '\v',SPACE     = ' '
};enum BOOLEAN { FALSE = 0, TRUE } match_flag;void main()
{printf("%d bytes \n", sizeof(enum escapes)); //4 bytesprintf("%d bytes \n", sizeof(enum BOOLEAN)); //4 bytesprintf("%d bytes \n", sizeof(match_flag)); //4 bytesprintf("%d bytes \n", sizeof(SPACE)); //4 bytesprintf("%d bytes \n", sizeof(FALSE)); //4 bytesprintf("%d bytes \n", sizeof(0)); //4 bytes
}

无论是枚举类型、枚举成员、枚举类型变量 都是四个字节(int类型)。

综合使用

(一)、在switch语句 中,可以把枚举常量作为标签

#include<stdio.h>enum Season
{spring, summer=100, fall=96, winter
};typedef enum
{Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
Weekday;void main()
{/* Season */printf("%d \n", spring); // 0printf("%d, %c \n", summer, summer); // 100, dprintf("%d \n", fall+winter); // 193Season mySeason=winter;if(winter==mySeason)printf("mySeason is winter \n"); // mySeason is winterint x=100;if(x==summer)printf("x is equal to summer\n"); // x is equal to summerprintf("%d bytes\n", sizeof(spring)); // 4 bytes/* Weekday */printf("sizeof Weekday is: %d \n", sizeof(Weekday)); //sizeof Weekday is: 4Weekday today = Saturday;Weekday tomorrow;if(today == Monday)tomorrow = Tuesday;elsetomorrow = (Weekday) (today + 1); //remember to convert from int to Weekday
}

(二)、用枚举常量表示数组的大小

#include <stdio.h>enum COLOR {RED, TELLOW, GREEN, NumCOLORS};int main()
{int color  = -1;char *ColorNames[NumCOLORS] = {"red", "yellow", "green",};char *colorName = NULL;printf("请输入你喜欢的颜色代码:");scanf("%d", &color);if ( color >= 0 && color < NumCOLORS){colorName = ColorNames[color];}else{colorName = "unkonw";}printf("你喜欢的颜色是 %s\n", colorName);return 0;
}// 请输入你喜欢的颜色代码:2
// 你喜欢的颜色是 green

注:
对于 “ enum COLOR {RED, TELLOW, GREEN, NumCOLORS}; ”
当没有给枚举变量成员赋值时,最后可以多设置一个枚举变量, 刚好可以表示枚举成员变量的数量。如 NumCOLORS在没有设置默认值时为 3.

这样要遍历所有的枚举量或者需要建立一个用枚举量做下标的数组的时候很方便。

参考博客:
https://blog.csdn.net/qq_41673920/article/details/85261762

http://www.yayakq.cn/news/28129/

相关文章:

  • 松岗网站建设公司黄冈网站建设
  • 网站编程学习济宁市兖州区建设局网站
  • php在网站后台建设中的优势 张晋芳学做快餐的视频网站
  • 网站页脚写什么线上平台运营方案
  • 防水自己如何建设网站怎么做qq靓号网站
  • 网站案例分析仿模板电影网站
  • dede网站建站教程代理记账包含哪些业务
  • 网站分享到微信缩略图北京学习网站建设
  • 一个网站做数据维护需要多久学ui可以做网站么
  • 冠县做网站推广被墙网站查询
  • 公司网站如何做宣传网站可以做库存吗
  • 网站布局分类生意网app下载官网
  • 包装在线设计网站wordpress做多语言
  • 做电子商务网站的公司什么是网络营销?常见的网络营销方式有哪些?
  • 苏州市城乡和建设局网站首页wordpress创建论坛
  • 企业信息的网站上门定制衣服哪家好
  • 秦皇岛 网站建设网站开发技术 文库
  • 山东网站建设软件建立淘宝客网站
  • 贵州两学一做专题网站企业宣传册模板文案
  • 镇江网站制作案例wordpress查看更多
  • 网站反向绑定域名群晖搭建wordpress
  • 仿牌外贸网站建设wordpress 电商小程序
  • 浙江省住建厅网站wordpress 淘宝分享插件下载
  • 做网站北京公司包头正大光电 做网站
  • 做汽车微信广告视频网站有哪些佛山 网站建设培训班
  • 微信公众号如何做网站dw做网站是静态还是动态
  • 在京东上怎样做网站自个网站
  • 公司的网站可以用个人备案吗网页升级访问升级自动跳
  • 德宏网站建设网站关键词排名快速提升
  • 网站群建设座谈会信息流广告素材网站