两个不同的枚举类型里的成员不能重名么?出现重定义错误
#include <stdio.h>
typedef enum tagENUM1
{
ONE,
TWO,
THREE
}ENUM1;
typedef enum tagENUM2
{
ONE,
TWO,
THREE
}ENUM2;
int main()
{
ENUM1 em1;
ENUM1 em2;
printf("hello!");
return 0;
}
ONE,TWO,THREE 都是 ENUM1 和 ENUM2 两个枚举里的成员,编译有重定义错误提示,两个不同的枚举类型里的成员不能重名么?如果不能重名,为什么这么设计,允许重名不是更好么,像两个结构体里的成员就可以重名,不是很好么。
[解决办法]
enum的成员相当于int型常量
[解决办法]
当然不能重名。 enum里的东西还是全局的。
[解决办法]
6楼纯搞笑
typedef enum tagENUM1
{
ONE=0,
TWO,
THREE
}ENUM1;
typedef enum tagENUM2
{
ONE=1,
TWO,
THREE
}ENUM2;
int main()
{
printf("%d",THREE);如果能编译你说这个打印出来多少
return 0;
}