新博客地址(shankusu.me)
以前看过一本《C语言参考手册》,其中讲解了命名空间,这几天在学习C的基础语法,故而总结下。
C命名空间分为独立(各个空间即使出现重名也不会影响)的下面个空间。
第一类基础类型空间eg: 整形(char short int long) 浮点(float double ),指针(void*),
第二类:聚合 enum struct union
实际上这和C对数据分类差不多,更为详细的分类见下
nameSpace1:
char n1, short n1, int n1, long n1, float n1, double n1, void *n1, 这些均使用同一个命名空间,故而任意两个或以上出现,则为命名重复,C中枚举常量被视为整型,故而如果出现enum e1{n1=10,}也是非法的。
nameSpace2:
enum n2, struct n2, union2,这些泛类型共同使用同一个命名空间,故而出现任意两个或以上均为命名重复。
nameSpaceN:
struct s1 { int n3;}; struct s2{int n3;}; union s3{int n3;};这样的,每个结构体和联合内部的命名空间仅针对对应的结构体和联合有效。