walter_¥ 2023-07-14 13:38 采纳率: 100%
浏览 60
已结题

宏定义与枚举重名时,为什么宏定义在枚举之后,编译没有问题;宏定义在枚举之前编译就会报错?

宏定义与枚举重名时,为什么宏定义在枚举之后,编译没有问题;宏定义在枚举之前编译就会报错?


#include <stdio.h>

#define TEST_A  1

typedef enum
{
    TEST_A = 0,
    TEST_B
}test;


int main()
{

    printf("TEST_A :%d\r\n", TEST_A);

    return 0;
}

  • 写回答

4条回答 默认 最新

  • threenewbee 2023-07-14 13:43
    关注

    本来就是这样,宏定义管它定义之下,并且可以多次定义

    #include <stdlib.h>
     
    int main()
    {
        #define A 1
        printf("%d\n", A);
        #define A 2
        printf("%d\n", A);
        return(0);
    }
    

    这段代码输出
    1
    2

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月22日
  • 已采纳回答 7月14日
  • 创建了问题 7月14日