gcc下enum定义中,声明基本类型,编译出错? 400 报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

gcc下enum定义中,声明基本类型,编译出错? 400 报错

爱吃鱼的程序员 2020-06-03 16:15:10 41

gcc下enum定义中,声明基本类型,编译出错? 400 报错

之前使用enum都没有试过声明它的基本类型,项目需要,发现Gcc下编译不通过,有没有高手能给个解答,给出解决办法,感激不尽。类型定义代码如下

enum TEST_TYPE:unsigned char
{
    TYEP_0    = 0,
    TYEP_1    = 1,
    TYEP_2    = 2,
    TYEP_3    = 3,
    TYEP_4    = 4,
    TYEP_5    = 5
};
Gcc报错
error: expected identifier or ‘(’ before ‘:’
C语言
分享到
取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-06-03 18:03:28

    你是C语言吗?如果是C语言,enum是等于整形类型的。你在前面加个TEST_TYPE:是什么目的?

    如果你想enum定义个类型是如下描述

    enum TYPE_E{
     a = 0,
     b = 1
    };
    enum TYPE_E *pe,te;
    ...

    ######

    enum TEST_TYPE:unsigned char

    后面的:unsigned char是没有必要的,也是不合法的。

    编译器会根据枚举数值的范围自动确定数据类型。

    ######

    有些源代码使用如下形式:

    enum XX

    {

        EA = 0,

        EB = 1,

         ……

        FORCE_DWORD = 0x7fffffff

    };

    迫使编译器使得这种枚举变量是一个DWORD,也就是一般占用4个自己。

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程