首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

两个不同的枚举类型里的成员不能重名么?出现重定义异常

2012-05-05 
两个不同的枚举类型里的成员不能重名么?出现重定义错误#include stdio.htypedefenumtagENUM1{ONE,TWO,TH

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

热点排行