Tre*_*key 1 c struct terminology language-lawyer
C标准说:
7.1.3保留标识符
所有以下划线开头的标识符始终保留用作普通和标记名称空间中具有文件范围的标识符.
什么是"标签名称空间"?
以下是标记的名称空间吗?
struct T{};
Run Code Online (Sandbox Code Playgroud)
它只是结构的类型名称吗?
这个术语是否会延续到C++中?
如果这些标识符属于不同的类别(称为名称空间),则C允许同一标识符的多个声明同时在范围内:
- 标签名称空间:声明为标签的所有标识符.
- 标记名称:声明为结构,联合和枚举类型名称的所有标识符.请注意,所有三种标签共享一个名称空间.
- 成员名称:声明为任何一个结构或联合的成员的所有标识符.每个struct和union都引入了自己的这种名称空间.
- 所有其他标识符,称为普通标识符,用于区分(1-3)(函数名,对象名,typedef名,枚举常量).
因此,T是一个结构的名称,与其他"标签"在同一名称空间中,但不在与标签相同的名称空间中.即,您可以T在同一范围内命名.
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |