网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

C语言的命名空间

C语言也有命名空间,可分位4类命名空间。

目前创新互联建站已为上千多家的企业提供了网站建设、域名、网络空间、网站托管运营、企业网站设计、三江侗网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

4类命名空间:

  1. 所有的标签(label)都属于同一个命名空间。说明:①在同一个函数内,你的标签不能相同。②在同一个函数内,标签可以和其他变量名称相同。因为它们所属的命名空间不同。

  2. structenumunion的名称,在 C99 中称之为 tag,所有的 tag 属于同一个命名空间。也就是说,如果你已经声明struct A { int a }; 就不能再声明union A{ int a };了。
    之所以让所有的 tag 组成一个命名空间,由于 tag 前面总是带structenumunion关键字,所以编译器可以将它们与其他的标识符区分开。

  3. structunion的成员属于一个命名空间,而且是相互独立的。例如:如果你已经声明struct A { int a }; ,其成员的名称为a,你仍然可以声明 struct B{ int a };或者union B{ int a };。之所以让structunion的成员各自成为一个命名空间,是因为它们的成员访问时,需要通过 “.”或”->”运算符,而不会单独使用,所以编译器可以将它们与其他的标识符区分开。由于枚举类型enum的成员可以单独使用,所以枚举类型的成员不在这一名称空间内。

  4. 其他所有的标识符,属于同一个名称空间。包括变量名、函数名、函数参数,宏定义、typedef的类型名、enum的成员 等等。注意:如果标识符出现重名的情况,宏定义会覆盖所有其它标识符,这是因为它在预处理阶段而不是编译阶段处理。除了宏定义之外其它类别的标识符,处理规则是:内层作用域会隐藏掉外层作用域的标识符。

平时写 C 程序从来没有想过 C 语言还有命名空间这事,有什么用呢?在《 C 语言接口与实现》这本神作中,大量使用typedef struct T *T;这种形式(其中T就是struct T *)的用法,遵循一定的约定,利用 C 语言的这种简单的命令规则也可以获得一些好处,使代码更精巧,可读性更好。

更多技术分享:Virbox 技术博客


网站标题:C语言的命名空间
本文链接:http://bjjierui.cn/article/jddpop.html

其他资讯