C++在函数参数中正确使用struct

Mie*_*iek 0 c++ struct

关于将结构作为函数arg传递的快速问题.也许它是C的延续,在C++中没有任何区别.

在许多Linked List示例中,您看到它们在任何带有结构的函数参数中重新声明了单词struct,我不明白为什么.或任何分配.结构是它自己的对象,只声明结构的名称就足够了.

例:

struct Node{

    int data;
    Node * next;
};

// Function to output data.
void printNode(struct Node* myNode){ 

    // Print data of node

}
Run Code Online (Sandbox Code Playgroud)

为什么在函数arg中重新声明了struct这个词.声明类型Node*工作得很好.

谢谢.

das*_*ght 6

C和C++使用struct关键字生成的声明之间存在差异:

  • 在C中,struct定义新struct 标记,但不是新类型
  • 在C++中,struct定义一个新类型.

结果是C++允许您使用在其中定义的名称struct,而C要求您为struct标记添加前缀,或者用于typedef定义新类型.