读书人

两个不同的枚举类型里的成员不能重名么

发布时间: 2012-05-05 17:21:10 作者: rapoo

两个不同的枚举类型里的成员不能重名么?出现重定义错误
#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;
}

读书人网 >VC/MFC

热点推荐