大佬教程收集整理的这篇文章主要介绍了函数参数或局部变量,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在这个函数的内部,我需要在一开始就创建一些临时变量.现在,哪一个更好:
a)在代码开头创建临时变量,在循环开始时初始化变量,并将其作为参数传递@H_262_5@b)在被调用函数的开头创建刚刚的本地临时变量?
// Method 1 void some_function() { int temporary; // Use temporary } // Method 2 void some_function(int temporary) { // Use temporary } // Method 3 void some_function(int *temporary) { // Use *temporary }
方法1可能是这些选项中最可读的,所以这是我喜欢的,除非你有一个很好的理由去做别的事情.除了您的编译器正在调用函数之外,它还可能比其他任何一个都要快.如果是这样,那么所有三个都可能执行完全相同(如果编译器无法优化远程指针取消引用,方法3可能会更慢).
如果编译器没有内联,那么方法2可能比方法1慢.这是因为在堆栈分配的内存方面,它们是相同的 – 函数参数将以相同的方式存储在堆栈中当地人在这个上下文中,函数参数和本地的唯一区别是函数参数可以被调用者赋予一个值.将调用者的值传递给函数的这一步(理论上讲)会减慢调用速度.
方法3几乎肯定会变慢,因为对临时内存的访问将包含间接级别.与访问本地时相比,引用一个指针不是一个便宜的操作.
当然,如果表现绝对关键,那么你应该对这些方法进行基准测试.我怀疑方法1将变成最快(或至少不比其他的慢),并且另外似乎对我更可读.
以上是大佬教程为你收集整理的函数参数或局部变量全部内容,希望文章能够帮你解决函数参数或局部变量所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。