C++ 在函数参数中正确使用结构
C++ Proper use of struct in function arguments
关于将结构作为函数参数传递的快速问题。也许它是从 C 继承而来的,对C++没有区别。
在许多链表示例中,您会看到它们在任何采用结构的函数参数中重新声明单词 struct,我不明白为什么。或与此相关的任何分配。结构是它自己的对象,仅声明结构的名称就足够了。
例:
struct Node{
int data;
Node * next;
};
// Function to output data.
void printNode(struct Node* myNode){
// Print data of node
}
为什么在函数 arg 中重新声明单词结构。 声明类型 Node* 就可以了。
谢谢。
C 和 C++ 使用struct
关键字生成的声明是有区别的:
- 在 C 中,
struct
定义了一个新的struct
标记,但不是一个新类型 - 在C++中,
struct
定义了一个新类型。
结果是C++允许您使用 struct
中定义的名称,而 C 要求您在标签上添加前缀struct
,或使用typedef
来定义新类型。
C 需要它。C++不需要它,但允许它向后兼容。不要对新代码执行此操作。
相关文章:
- 使用不带参数的函数访问结构元素
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 链表,反向函数,数据结构
- 结构向量中自定义结构函数的内存使用
- C++ 中的嵌套结构函数
- 在结构函数之间传递文件路径 C++ 编辑:修复LNK2019错误
- 如何将值从外部传递到结构函数
- 如果存在具有不同参数的继承成员,为什么对 C++ 结构函数的调用不明确?
- C++结构函数的多个定义
- C++ 另一个标头中的结构函数给出"missing type specifier"
- 如何在C中找到结构/函数的父头文件
- C++二进制文件到结构函数
- C++ 将结构函数作为继承结构中函数的参数传递
- 如何在 main 之外的类中使用结构函数
- 在类中使用结构函数,在基类 c++ 中使用变量
- C++ 结构函数体调用另一个结构函数,同一个模块
- 是存储在对象中的类/结构函数
- Eclipse CDT 在从 std::map 访问时无法解析结构函数
- C++模板自身名称作为模板模板参数在同一模板结构函数内传递
- 如何使用真正的字符串类型来表示类结构函数中的字符串