C语言的命名空间
时间:2010-08-27
来源:互联网
本帖最后由 zhangsuozhu 于 2010-08-27 18:38 编辑
复制代码
C语言标准, 6.2.3 Name Spaces and Identifiers
其中定义的4个名字空间如下:
1. label 单独位于一个名字空间
2. struct, union , enum的名字, 在C标准中用tag一词指代, 它们的名字位于一个名字空间, 也就是说, 如果你已经
struct Foo { ... };就不能再enum Foo {... };
了
3. struct, 或union 的成员, 位于由相应的struct或union 声明范围内的一个密闭名字空间, 两个不同的struct, 或struct与union 的成员, 可以有同样的名字, 这一规则可以递归地施行于struct / union 的子成员. 如果它们本身也是一个struct或union 的话.
4. 所有其它的一切东西, 比如函数名, 变量名等等.
- #include <stdio.h>
-
- struct Foo
- {
- int table_id;
- signed int length:4;
- } ;
-
- typedef struct Foo Foo;
- int main()
- {
- Foo Foo;
- goto Foo;
- Foo:
- printf("size: %lld ", (long long) sizeof(Foo));
- return 0;
- }
其中定义的4个名字空间如下:
1. label 单独位于一个名字空间
2. struct, union , enum的名字, 在C标准中用tag一词指代, 它们的名字位于一个名字空间, 也就是说, 如果你已经
struct Foo { ... };就不能再enum Foo {... };
了
3. struct, 或union 的成员, 位于由相应的struct或union 声明范围内的一个密闭名字空间, 两个不同的struct, 或struct与union 的成员, 可以有同样的名字, 这一规则可以递归地施行于struct / union 的子成员. 如果它们本身也是一个struct或union 的话.
4. 所有其它的一切东西, 比如函数名, 变量名等等.
作者: zhangsuozhu 发布时间: 2010-08-27

作者: lenky0401 发布时间: 2010-08-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28