宏定义与枚举重名时,为什么宏定义在枚举之后,编译没有问题;宏定义在枚举之前编译就会报错?
#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;
}
宏定义与枚举重名时,为什么宏定义在枚举之后,编译没有问题;宏定义在枚举之前编译就会报错?
#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;
}
本来就是这样,宏定义管它定义之下,并且可以多次定义
#include <stdlib.h>
int main()
{
#define A 1
printf("%d\n", A);
#define A 2
printf("%d\n", A);
return(0);
}
这段代码输出
1
2