c++ - VS2008 传递变量 - 结构与结构组件 - 优点/缺点?

标签 c++ visual-studio-2008 struct parameter-passing

我真的希望这不是那些 super 基本的问题之一。

无论如何,我有一个包含 47 个组件的结构,我正在调用各种函数,这些函数一次使​​用 3 到 10 个这些组件。

这样调用函数是否更好:
foo(pParam->variable1, pParam->variable2, pParam->variable3)
foo(pParam) 然后在函数中使用 pParam->variable1; pParam->变量2; pParam->variable3; ?

提前致谢!

最佳答案

你应该通过引用传递结构,这样你就不需要复制所有的值:

void foo(mySturct pParam); //Here the struct will be copy constructed.. relatively large overhead

void foo(Val1 param1, Val2 param2, Val3 param3); // 3 parameters passed by value, the value will be copied.

void foo(mySturct &pParam); //Only the reference to the structure is passed. Single pointer size value is passed.

一般结构都在那里,所以你可以 union 数据。所以把它拆开来给函数传递不同的参数是没有意义的。
它应该保持为一个整体。

关于c++ - VS2008 传递变量 - 结构与结构组件 - 优点/缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6430932/

相关文章:

c++ - 使用(非类型)枚举参数定义内部类成员函数模板

c++ - 单个变量如何存储多个值?

visual-studio-2008 - 如何删除 Visual Basic 项目类型?

c++ - vector::erase() 也删除结构的成员 vector

c - 解引用指向不完整类型的指针 - 使用指向函数的指针将值分配给结构

c++ - C++双端队列迭代器有多聪明

c++ - 如何在 C++ 和 Linux 中将 std::ostream 重定向到文件或/dev/null

c# - Visual Studio/Microsoft sql 关系键错误

vs 2008 的 C++ std::begin(c)

c++ - 在结构本身内部访问运算符