找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 67|回复: 0

C++中枚举类型如何做位运算

[复制链接]
  • TA的每日心情
    开心
    2025-6-8 10:03
  • 签到天数: 58 天

    [LV.5]常住居民I

    69

    主题

    12

    回帖

    1605

    积分

    管理员

    积分
    1605
    发表于 2024-11-1 19:46:37 | 显示全部楼层 |阅读模式
    enum ExportType
    {
            e_None = 0,
            e_Excel        = 1 << 0,        //0x1
            e_File        = 1 << 1,        //0x2
            e_BOM        = 1 << 2,        //0x4
    };

    定义变量ExportType                m_Type;

            int state = e_None;
            if(m_Excel)state |= e_Excel;
            if(m_File)state |= e_File;
            if(m_BOM)state |= e_BOM;


    想用位运算,要使用int state = e_None;这样,而且不能直接用m_Type |= e_Excel。因为运算的结果有可能超过枚举的定义,比如结果5,实际上在ExportType中并没有相应的定义


    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|SOUI官方论坛

    GMT+8, 2025-6-24 07:05 , Processed in 0.053821 second(s), 21 queries .

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表