use*_*241 0 c namespaces c99
我有以下代码:
typedef struct Y {int X;} X; enum E {X};
这会产生错误:
错误:'X'重新声明为不同类型的符号
据我所知,C隐式定义了结构,联合和枚举标记以及它们的成员的名称空间.所以,我不确定为什么会E::X碰到typedef结构标签X?
E::X
X
C中的名称空间究竟是什么?
mel*_*ene 5
C没有为enum成员提供单独的命名空间.在编写enum {X}时,会创建一个全局常量X(可以与其他全局名称冲突,例如typedef'd tags).
enum
enum {X}
typedef
归档时间:
13 年,1 月 前
查看次数:
137 次
最近记录: