关于将结构作为函数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*工作得很好.
谢谢.
C和C++使用struct关键字生成的声明之间存在差异:
struct定义新struct 标记,但不是新类型struct定义一个新类型.结果是C++允许您使用在其中定义的名称struct,而C要求您为struct标记添加前缀,或者用于typedef定义新类型.