首页 > 解决方案 > C++中结构的类型重定义?

问题描述

我在学习 C++ 时对 C++ 代码片段感到困惑,有人可以帮我解决这个问题吗?提前致谢。

struct LinkNode
{
  int data;
  struct LinkNode* next; // Why there use `struct` type define LinkNode again? 
};

正如我的评论,为什么struct再次使用类型定义 LinkNode ?我认为代码struct LinkNode{}已经定义了一个 LinkNode。当然,如果我如下更改代码,它也可以正常工作,也不会出现任何编译错误。

struct LinkNode
{
  int data;
  LinkNode* next; // No any compilation errors either.
};

标签: c++struct

解决方案


C++中结构的类型重定义?

这不是类型重新定义。这称为详细类型说明符。它可以用来区分一个类名和另一个隐藏它的名字。在这种情况下没有必要使用它。使用它也不会破坏任何东西。

也可以为可从 C 中使用的 API 编写代码。在 C 中,这是必要的。


推荐阅读