从 (6.2.3/1) C99 标准
-- 结构体、联合体和枚举的标签(通过任何*关键字 struct、union 或 enum 来消除歧义);
*脚注:标签只有一个名称空间,尽管可能有三个。
现在,我知道在 C++ 中我们使用命名空间来避免实体冲突,例如:
namespace foo {
struct bar // ..define bar..
};
namespace foo2 {
struct bar // ..define bar..
};
在 C 中,struct、union、enum 如何用作命名空间以及脚注意味着只有一个命名空间而不是三个命名空间是什么意思?