m0_56398359 2022-04-28 00:08 采纳率: 100%
浏览 16
已结题

枚举中是否可以使用宏控决定使用不同的枚举值

举例:
#define EXAMPLE A

enum
{
#if (EXAMPLE ==A)
a,
b,
#elif
c,
d
#endif
} exam;

这样编译时代码应该会报错,但不清楚原因

  • 写回答

1条回答 默认 最新

  • a5156520 2022-04-30 18:13
    关注

    可能是EXAMPLE宏的定义有点不对,又或者因为#if和#elif后面需要跟常量表达式有关,我用下面的测试代码,编译通过了,但不知道满足你要求不,因为加上下面注释的那行使用枚举的代码会编译失败,测试代码如下:

    #define EXAMPLE 'A'
    #include <stdio.h>
    
    #if EXAMPLE =='A'
    enum exam
    {
    a,
    b
    };
    #elif EXAMPLE =='B'
    enum exam 
    {
    c,
    d
    };
    #endif
    
    int main(void){
        if(EXAMPLE=='A'){
            printf("A");
        }else{
            printf("B");
        }
    
        //enum eaxm test;
        
        
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月9日
  • 已采纳回答 5月1日
  • 创建了问题 4月28日

悬赏问题

  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题