C的名字空间
C使用术语名字空间(namespace)来识别一个名字的程序部分。作用域是这个概念的一部分:名字相同但具有不同作用域的两个变量不好冲突;而名字相同并在相同作用域中的两个变量就会冲突。名字空间是分类别的。在一个特定的作用域内的结构标记、联合标记以及枚举标记都共享同一个名字空间,而且这个名字空间与普通变量使用的名字空间是不同的。这意味着,可以在同一个作用域内对一个变量和一个标记使用同一个名字,而不会产生错误;但是不能在同一个作用域内使用名字相同的两个标记或名字相同的两个变来能够。
例如,在C中下面的语句不会产生冲突:
struct rect {double x; double y;}; int rect;
然而,用两种不同的方式使用同一个标识符会造成混乱;而且,C++不允许在同一个作用域内对一个变量和标记使用同一个名字,因为它把标记和变量名放在同一个名字空间中。