c语言,enum
在设置错误代号时,使用enum比宏更好看。
#include <stdio.h>
typedef enum {
retOK = 0,
errComInterruption = 0x1000,
errHexStr2Arry = 80,
errFindCard = 82,
}ENUM_ERROR_NUM;
void f1(void)
{
printf("errHexStr2Arry = %d\n", errHexStr2Arry);
int c = errHexStr2Arry;
printf("c = %d\n", c);
}
int main()
{
f1();
return 0;
}
enum最常用的用法就是作为“宏”的集合(如:错误代码集, 信息代码集。)
在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作, 此时enum是比#define更好的替代方式。
注意:同一个程序中不能定义同名的枚举类型,不同的枚举类型中也不能存在同名的命名常量。
sizeof() 和enum:enum其实是人为定义的一种类型, 这种类型在内存里面(linux 32 bit system)是占了4个字节(和int一样大)。
enum变量的默认值: 一个enum变量如果不赋初值(貌似这种使用方式不多),不管enum里面是怎么定义的,默认值都是0, see below example day_ev。
#include <stdio.h>
typedef enum escapes
{
BELL = '\a',
BACKSPACE = '\b',
HTAB = '\t',
RETURN = '\r',
NEWLINE = '\n',
VTAB = '\v',
SPACE = ' '
}ESCAPES; enum day { MON = , TUE = } day_ev; void main()
{
printf("sizeof(0) = %d bytes \n", sizeof()); //4
printf("sizeof(ESCAPES) = %d bytes \n", sizeof(ESCAPES)); //4
//printf("%d bytes \n", sizeof(escapes)); // error: ‘escapes’ undeclared
printf("sizeof(enum escapes) = %d bytes \n", sizeof(enum escapes)); // 4
printf("sizeof(SPACE) = %d bytes \n", sizeof(SPACE)); // printf("sizeof(day_ev) = %d bytes \n", sizeof(day_ev)); //4
printf("day_ev= %d\n" , day_ev);// default value = 0
}
c语言,enum的更多相关文章
- C语言--enum,typedef enum 枚举类型详解
原文:http://z515256164.blog.163.com/blog/static/32443029201192182854300/ 有改动 C语言详解 - 枚举类型 注:以下全部代码的执行环 ...
- C语言enum再学习
通常来说我们使用enum是这样的: enum week{ Mon, Tue, ... Sun }; enum week w; w = Mon; 这里默认Mon~Sun的值为0~6 也可以自己定值 , ...
- C语言——enum
#include<stdio.h> enum Season { spring, summer=100, fall=96, winter }; typedef enum { Monday, ...
- IOS学习笔记 O1
第一章 Objective-C语言基础 一.OC语言与C语言的比较 C语言是一门面向过程的语言,而OC则是一门面向对象的语言. C语言文件默认保存格式为.c,OC语言默认保存格式为.m,两者头文件格式 ...
- [C语言 - 8] 枚举enum
枚举是c语言中得一种基本数据类型,不是数据结构 用于声明一组常数 1. 3中枚举变量的方式 a. 先定义类型, 再定义变量 b. 同时定义类型和变量 c. 匿名定义 enum Season {Spri ...
- C语言枚举类型(Enum)深入理解
在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例, ...
- 浅析c++和c语言的enum类型
1.先看c语言枚举类型 1.c语言定义枚举类型,每一个枚举元素都是一个整数2.注重数据类型,没有数据类型限定3.相邻枚举元素相差整数4.可以通过整数访问,不够安全 2.上代码: 1 #include& ...
- 枚举类型enum详解——C语言
enum enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶 ...
- [编程] C语言枚举类型(Enum)
C语言枚举类型(Enum):定义形式为:enum typeName{ valueName1, valueName2, valueName3, ...... };enum 类型名{名字1,名字2} 枚举 ...
- C语言进阶——enum, sizeof, typedef 分析11
枚举类型的使用方法: enum是C语言的 一种自定义类型 enum值是可以根据需要自定义的整型值 第一个enum的值默认为0 默认情况下的enum值是在前一个定义值的基础上加 1 enum类型的变量只 ...
随机推荐
- CSS3框架!
http://usablica.github.io/front-end-frameworks/compare.html?v=2.0
- dialog组件的jquery封装实现
(function($){ $.extend({ Dialog : function(id, options){ var option = $.extend({}, options); option. ...
- Python Extension Packages下载链接
一.http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载后可使用pip包管理器进行安装,在命令行中输入: pip install 安装包的路径
- selenium 怎么处理display:none
页面HTML是这样的: .... <div class="cf w index-middle"> <div id="li" class=&q ...
- Introduction to Guid ( globally unique identifier )
什么是 GUID? 全球唯一标识符 (GUID) 是一个字母数字标识符,用于指示产品的唯一性安装. 在许多流行软件应用程序(例如 Web 浏览器和媒体播放器)中,都使用 GUID. GUID 的格式为 ...
- django中间件templates写法
def templates_context_process(request): from django.contrib.sites.models import Site from accounts.m ...
- 0课程介绍(Week1,3月3日)
一.自我介绍 1.姓名:杨晔 2.办公室:B211-2 3.电子邮件:yangye@zjjy.com.cn 4.QQ:6706892 5.博客:http://www.cnblogs.com/meety ...
- Qt 代码: 子窗口调用父窗口(其实就是用指针直接访问)
之前的 Qt 编程大多只涉及简单的多窗口,并未染指窗口间的传值交互,想来还是“涉世未深”,对 Qt 的理解.应用还需殷勤努力. 这次的问题是这样的,我想要实现一个类似QQ.阿里旺旺的聊天客户端,在弹出 ...
- cmake 学习笔记(四)
接前面的一二三,学习一下 CMakeCache.txt 相关的东西. CMakeCache.txt 可以将其想象成一个配置文件(在Unix环境下,我们可以认为它等价于传递给configure的参数). ...
- hdu1533解题报告
题意:这里有一个N*M的方格图.....图中m代表人,H代表房子...并且人数和房子的数量是相等的..那么.每个人可以竖直或者横向走一格,并且花费1S元...那么为了让所有的人进入房子,求解最小的花费 ...