首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为啥 结构体标识符可以和typedef 定义一样的名字

2013-09-05 
为什么 结构体标识符可以和typedef定义一样的名字就像下面这个一样,一个是结构标识符, 一个是类型定义type

为什么 结构体标识符可以和typedef 定义一样的名字
就像下面这个一样,一个是结构标识符, 一个是类型定义

typedef struct StackNode
{
int data;
}StackNode;

[解决办法]
对于C,结构体名和typedef是在不同的名字空间里面。
C++就不行了,C++的struct和class定义中隐含了typedef
[解决办法]
引用:
就像下面这个一样,一个是结构标识符, 一个是类型定义

C/C++ code?1234typedef struct StackNode{    int data;}StackNode;

因为tag和类型分属不同的"名字空间",编译器能区分,不用担心。唯一的问题是: 代码可读性。 

struct StackNode s; //StackNode是tag
StackNode s2; //StackNode是类型

热点排行
Bad Request.