zoukankan      html  css  js  c++  java
  • 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
    ", errHexStr2Arry);
        
        int c = errHexStr2Arry;
        printf("c = %d
    ", 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 = '',
        HTAB      = '	',
        RETURN    = '
    ',
        NEWLINE   = '
    ', 
        VTAB      = 'v',
        SPACE     = ' '
    }ESCAPES;
    
    enum day { MON = 1, TUE =2 } day_ev;
    
    void main()
    {
        printf("sizeof(0) = %d bytes 
    ", sizeof(0)); //4 
        printf("sizeof(ESCAPES) = %d bytes 
    ", sizeof(ESCAPES)); //4
        //printf("%d bytes 
    ", sizeof(escapes)); // error: ‘escapes’ undeclared
      printf("sizeof(enum escapes) = %d bytes ", sizeof(enum escapes)); // 4
    printf("sizeof(SPACE) = %d bytes ", sizeof(SPACE)); //4 printf("sizeof(day_ev) = %d bytes ", sizeof(day_ev)); //4 printf("day_ev= %d " , day_ev);// default value = 0 }
  • 相关阅读:
    Python写的简陋版一对一聊天工具,全双工
    Python函数的循环调用
    Python多进程
    正则表达式
    Python-urllib学习记录
    Android学习笔记8:使用HttpClient接口实现网络通信
    Java抽象类和接口的区别(好长时间没看这种文章了)
    Android笔记:bitmap转换与处理相关工具类,Bitmap与DrawAble与byte[]与InputStream之间的转换
    first work
    Android学习笔记7:使用SQLite方式存储数据
  • 原文地址:https://www.cnblogs.com/mylinux/p/4667610.html
Copyright © 2011-2022 走看看