为什么struct node*写在struct node里面

Why struct node* is written inside a struct node?

本文关键字:struct node 里面 写在 为什么      更新时间:2023-10-16

我多次看到c++中的节点类被定义为:

struct node
{
    whatever data;
    struct node* pointerToAnyLinkedNode;
}

现在的问题是为什么在第一行。4、'struct'写在node*?它有特殊的目的吗?因为我不写也不会有什么问题。如果这个问题有重复,我很抱歉。顺便说一句,我找不到。

这是因为这种习惯用法起源于C(其中结构类型在开始时以struct命名),并且令人不安的是,c++社区中有很大一部分人从在线教程中复制/粘贴他们的代码,而不是真正考虑他们在做什么。

(这也是为什么你会在c++代码中到处看到struct tm的原因,没有很好的理由。)

在c++中,struct关键字在这里是多余的。

公平地说,如果您正在编写头文件并希望与C程序兼容,那么将其留在

中是一个很好的理由。