所有这些都取决于目标系统及其对函数的调用约定。这个答案只适用于C和C++。在

通常,文件范围变量的使用通常是最快的。在整个项目中(例如,在整个项目中,不能作为全局变量进行访问),但不能作为全局变量进行访问。在

尽管如此,仍应避免此类静态文件范围变量,原因如下:它们可能使代码更难读取和维护,无规则使用可能导致“意大利面代码”,它们会造成重新进入问题,并且会向文件作用域名称空间添加一些额外的标识符。在

应该注意的是,如果参数的数量有限,将它们作为单独的参数保留可能会提高性能,因为编译器可能会将其中一些参数存储在CPU寄存器中,而不是存储在堆栈中。CPU寄存器是向函数传递参数的最快方式。这是如何工作的非常具体的系统。然而,在大多数情况下,以希望通过CPU寄存器传递参数的方式编写程序是成熟前的优化。在

传递多个参数的最好的事实上的方法确实是创建包含所有参数的自定义结构(或C++类)。然后通过引用函数传递该结构。试着使结构只包含彼此相关的变量。考虑将彼此不相关的变量或仅对一个给定函数特殊的变量放入单独的参数中。在大多数情况下,好的程序设计会取代效率。在

结构/类比数组更可取的原因很简单,因为这些变量一起构成了一个唯一的类型,而且它们之间可能有不同的类型。所有类型的数组都有意义。在

和C++中,类在数组上提供其他优点,例如构造函数和析构函数、自定义赋值操作符等。