C语言enum关键字
很多初学者对枚举(enum)感到迷惑,或者认为没什么用,其实枚举(enum)是个很有用的数据类型。
一、枚举类型的使用方法
一般的定义方式如下:
enum enum_type_name
{
ENUM_CONST_1,
ENUM_CONST_2,
...
ENUM_CONST_n
} enum_variable_name;
注意:enum_type_name 是自定义的一种数据数据类型名,而enum_variable_name 为enum_type_name类型的一个变量,也就是我们平时常说的枚举变量。实际上enum_type_name类型是对一个变量取值范围的限定,而花括号内是它的取值范围,即enum_type_name 类型的变量enum_variable_name 只能取值为花括号内的任何一个值,如果赋给该类型变量的值不在列表中,则会报错或者警告。ENUM_CONST_1、ENUM_CONST_2、...、ENUM_CONST_n,这些成员都是常量,也就是我们平时所说的枚举常量(常量一般用大写)。
enum 变量类型还可以给其中的常量符号赋值,如果不赋值则会从被赋初值的那个常量开始依次加1,如果都没有赋值,它们的值从0 开始依次递增1。如分别用一个常数表示不同颜色:
enum Color
{
GREEN = 1,
RED,
BLUE,
GREEN_RED = 10,
GREEN_BLUE
}ColorVal;
其中各常量名代表的数值分别为:
GREEN = 1
RED = 2
BLUE = 3
GREEN_RED = 10
GREEN_BLUE = 11
二、枚举与#define 宏的区别
下面再看看枚举与#define 宏的区别:
1)#define 宏常量是在预编译阶段进行简单替换。枚举常量则是在编译的时候确定其值。
2)一般在编译器里,可以调试枚举常量,但是不能调试宏常量。
3)枚举可以一次定义大量相关的常量,而#define 宏一次只能定义一个。
留两个问题:
A),枚举能做到事,#define 宏能不能都做到?如果能,那为什么还需要枚举?
B),sizeof(ColorVal)的值为多少?为什么?
C语言enum关键字相关推荐
- c语言字母表关键字,读书笔记-C语言关键字
001 关键字 C语言一共32个关键字 1. 声明和定义 在开始认识关键字前,必须要明白什么是声明,什么事定义: 定义:(编译器)创建一个对象,为这个对象分配一段内存并给他取上一个名字.在一个作用域内 ...
- C语言 enum和typedef enum的区别
在了解enum和typedef enum的区别之前先应该明白typedef的用法和意义. C语言里typedef的解释是用来声明新的类型名来代替已有的类姓名,例如: typedef int CHANG ...
- c语言中switch语句流程图_C语言:C语言保留字(关键字)
保留字(reserved word) 保留字又称关键字. 指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用. 每种程序设计语言都规定了自己的一套保留字. 例如:BASIC语言规 ...
- Java分享笔记:自定义枚举类 使用enum关键字定义枚举类
在JDK1.5之前没有enum关键字,如果想使用枚举类,程序员需要根据Java语言的规则自行设计.从JDK1.5开始,Java语言添加了enum关键字,可以通过该关键字方便地定义枚举类.这种枚举类有自 ...
- C语言的关键字 详解
一.C语言的关键字 C语言中的32个关键字及其意思如下: 由 ANSI 标准定义的C 语言关键字共32 个.根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类. 1.数据类型关键字 ...
- C语言标准ANSI C、C语言的特点、C语言的关键字(32个)
C语言标准:通常称为ANSI C. C语言的特点: 1.C语言简洁.紧凑,使用方便.灵活.ANSI C一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分. 2 ...
- C语言的关键字和标识符
一.关键字 关键字是具有特定含义的.专门用来说明C语言的特定成分的一类单词. C语言的关键字都是用小写字母书写的,不能用大写字母书写.关键字不能用于 ...
- 对C语言的关键字及部分关键字用法的简单理解
小盆友,你是否有很多问号??? C语言的关键字是什么?有哪些?他们如何用??? 我也在学习中迷惑着,所以把今天学习到的稍微做一下总结,方便自己以后的复习(目前学到的比较粗浅,以后还需要深入学习). 哪 ...
- c语言中关键字的含义,c语言中的关键字有哪些?有什么含义?
c语言中的关键字有哪些?有什么含义? 发布时间:2020-04-23 09:33:30 来源:亿速云 阅读:174 作者:小新 这篇文章主要介绍了c语言中的关键字有哪些?有什么含义?,具有一定借鉴价值 ...
最新文章
- java客户服务器程序预约口罩_团队作业(二):Github实训:口罩预约
- DarknetTiny模型结构
- unity hub是什么东西_Unity可编程渲染管线(SRP)教程:一、自定义管线
- timestamp 字段
- 为什么我的JVM访问的内存少于通过-Xmx指定的内存?
- jquery、javascript实现(get、post两种方式)跨域解决方法
- 简易的实现对象内存池
- 联想微型计算机功率,解锁全部潜力,联想这款笔记本可以将CPU功耗提升至24W
- 恒大健康上半年营收同比增132% 新能源汽车将成新增长点
- 拦截方法并替换成自己的方法
- end_request: I/O error
- 拿去吧你,软件测试的文件和目录测试都在这
- 好看的php表格样式,四个好看的CSS样式表格 | 学步园
- git创建本地代码库
- .rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.5.0/lib/cocoapods/executable.rb:89: warning: Insecure
- 推荐几个免费的ppt模板网站
- NLP领域表达退化各向异性理解及对应策略总结
- win10系统如何搜索计算机,让您电脑搜索查找更方便!Win10系统建立索引教程
- linux sigaction函数 sa_flags的值
- php 微信分享功能_基于thinkPHP实现的微信自定义分享功能
热门文章
- SharePoint学习札记[6] — WebPart之基础
- linux下sublime安装目录在那,linux下sublime text 3安装到配置
- python多重赋值技巧_python教程12课:多元赋值、多重赋值、运算符以及判断字符串类型...
- Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性
- 【Python 必会技巧】获取字典中(多个)最大值(value)的键(key)
- CCIE理论-第九篇-IPV6详细介绍
- 【SPOJ - QTREE2】Query on a tree II(LCA,倍增)
- 【CodeForces - 608C】Chain Reaction (二分 或 dp ,思维)
- 计算机统考测试,计算机统考专业测试题.doc
- delphi webbrowser 显示 html,delphi webbrowser