我真的希望这不是那些 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/