开发者社区> 问答> 正文

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

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 ‘:’

展开
收起
爱吃鱼的程序员 2020-06-03 16:15:10 713 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你是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个自己。

    2020-06-03 18:03:28
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Decian GNU/Linux安全合规之路 立即下载
Debian GNU/Linux 安全合规之路 立即下载
低代码开发师(初级)实战教程 立即下载

相关镜像