为啥 结构体标识符可以和typedef 定义一样的名字
为什么 结构体标识符可以和typedef定义一样的名字就像下面这个一样,一个是结构标识符, 一个是类型定义type
为什么 结构体标识符可以和typedef 定义一样的名字
就像下面这个一样,一个是结构标识符, 一个是类型定义
typedef struct StackNode
{
int data;
}StackNode;
[解决办法]对于C,结构体名和typedef是在不同的名字空间里面。
C++就不行了,C++的struct和class定义中隐含了typedef
[解决办法]因为tag和类型分属不同的"名字空间",编译器能区分,不用担心。唯一的问题是: 代码可读性。
struct StackNode s; //StackNode是tag
StackNode s2; //StackNode是类型