1
5
正如尼尔所说,你需要自己判断。 要避免传递任何内容的成本,请使用全局。其次,最好是由指针/引用传递的单个结构。之后是单独的指针/引用参数。 但是,如果必须将数据打包到结构中,然后在调用后将其读回,那么最好不要传递单个参数。 如果您不确定,只需使用这两种方法编写一点快速测试代码,分别执行几十万次,然后计时看哪种方法最好。 |
2
7
两种方法都是有效的,但我会的。 考虑语义 (结构与参数引用)决定哪种方式最好 传达你的意图 给程序员。 如果返回的值 紧密耦合 ,然后可以将它们作为结构返回。但是,如果你只是在创造 人工机制 若要一起返回值(作为结构),则应使用参数引用(即传递变量的地址)将值返回给调用函数。 |
3
3
您已经描述了两个可能的解决方案和您感知到的性能约束。你从这里走到哪里真的取决于你——我们没有足够的信息来做出明智的判断。 |
4
3
最容易读取的应该是在函数中传递的地址,它也应该很快,pop和push很便宜:
|
5
1
我能想到的最快的Q&D方法是传递全局对象的值,这种方法跳过堆栈操作,只需记住它不会是线程安全的。 |
6
1
我认为当您返回一个结构指针时,您可能需要手动为它找到一些内存。参数列表中的地址是在堆栈上分配的,这样更快。 |
7
1
请记住,有时按值传递参数和返回时更新(或在堆栈上创建本地副本)比按引用传递参数更快…这在结构小、参数少、访问量大的情况下非常明显。 |
8
0
这在很大程度上取决于您的体系结构,以及您是否期望(或可以拥有)内联函数。我首先以最简单的方式编写代码,然后担心速度,如果这是代码中昂贵的部分。 |
9
0
我会把地址传给一个结构。如果要返回的信息不复杂,那么只将地址传递给值也可以。 就个人而言,这实际上取决于界面有多混乱。
|
10
0
在这两种情况下,都是传递引用,所以性能应该类似。如果函数实际上从未返回值,那么可以使用“返回结构”选项避免malloc的开销,因为您只返回空值。 我的个人偏好是返回一个动态分配(malloc'd)结构。我避免在输出中使用函数参数,因为我认为从长远来看,它会使代码更混乱,更不易维护。 |
11
-1
返回结构的本地副本是错误的,因为如果该结构在函数内声明为非静态的,则一旦退出该函数,它将变为空。 对于所有建议引用的人来说,操作系统确实会说“c”,而c没有它们(引用)。 还有可爱的羽毛耶稣,我能明天醒来而不必在电视上看到任何关于失败之王的事情吗? |
Eddiex045 · 比较两个文本文件,匹配项转到一个新文件 2 年前 |
NOBUD · 最大堆插入函数实现C++ 2 年前 |
riasc · 嵌套贴图结构创建空贴图 6 年前 |
Akshay Barpute · cpp中的以下链表程序有什么问题? 6 年前 |
Batwoman05 · C++中是否有具有类似函数的树集数据结构 6 年前 |