typedef跟枚举变量

typedef enum
{
ERROR = 0,
SUCCESS = !ERROR
} ErrorStatus;

这个代码怎么解释?

这个语句的作用是为数据类型
enum
{
ERROR = 0,
SUCCESS = !ERROR
}

定义一个别名ErrorStatus,这样以后定义变量时就写ErrorStatus a;就可以了,而不用写较长的enum{ERROR=0,SUCCESS=!ERROR} a;了. 

typedef的用于其实很简单,但是当typedef后面跟个枚举变量这么大一陀代码的时候就不不知怎么理解了。真是不应该。

 

枚举是一个被命名的整型常数的集合, 枚举在日常生活中很常见。

    例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,SATURDAY, 就是一个枚举。

    枚举的说明与结构和联合相似, 其形式为:

    enum 枚举名{

    标识符[=整型常数],

    标识符[=整型常数],

    ...

    标识符[=整型常数],

    } 枚举变量;

    如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始, 顺

    次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次

    加1的规则确定其值。

    例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3。

    enum string{x1, x2, x3, x4}x;

    当定义改变成:

    enum string

    {

    x1,

    x2=0,

    x3=50,

    x4,

    }x;

    则x1=0, x2=0, x3=50, x4=51

    注意:

    1. 枚举中每个成员(标识符)结束符是",", 不是";", 最后一个成员可省略

    ","。

    2. 初始化时可以赋负数, 以后的标识符仍依次加1。

    3. 枚举变量只能取枚举说明结构中的某个标识符常量。

    例如:

    enum string

    {

    x1=5,

    x2,

    x3,

    x4,

    };

    enum strig x=x3;

    此时, 枚举变量x实际上是7。

    enum   关键字在c中用的是比较多的,它常用来定义标记整型常量,你去看许多操作系统的源代码,都有用这个关键字来一次定义许多标记整型常量,其实它相当于定义一个整型常量的表,方便应用时查找。当然他的大部分功能都可以被宏定义代替,不过毕竟enum关键字定义的东东是支持类型检查的,可以用编译器来发现一些错误(enum定义的只能是整型的常量表)

永不止步步 发表于07-18 14:18 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308417个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号