Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我是否使用循环来迭代较小大小的数组(比如2或3)?_C_Performance_Loops - Fatal编程技术网

C 我是否使用循环来迭代较小大小的数组(比如2或3)?

C 我是否使用循环来迭代较小大小的数组(比如2或3)?,c,performance,loops,C,Performance,Loops,考虑一下这个简单的问题: 假设我有一个1x4数组。我必须给每个元素加5。那么建议使用循环。除去代码因素的大小和良好的代码组织,是否还有其他理由我应该使用循环?它会不会比执行4条直线的代码花费更多的时间,我在其中为每个元素添加5条代码,因为控件必须返回5次&更改循环变量的值?如果我们考虑一个1x2数组怎么办?然后我们甚至没有大小问题,两种类型的代码都由两行组成 虽然我用C语言标记这个问题,但我也想用其他语言了解这个问题。这是一个微观优化。如果您不必在循环级别上进行保存,那么就不必担心展开这样的循环

考虑一下这个简单的问题:

假设我有一个1x4数组。我必须给每个元素加5。那么建议使用循环。除去代码因素的大小和良好的代码组织,是否还有其他理由我应该使用循环?它会不会比执行4条直线的代码花费更多的时间,我在其中为每个元素添加5条代码,因为控件必须返回5次&更改循环变量的值?如果我们考虑一个1x2数组怎么办?然后我们甚至没有大小问题,两种类型的代码都由两行组成


虽然我用C语言标记这个问题,但我也想用其他语言了解这个问题。

这是一个微观优化。如果您不必在循环级别上进行保存,那么就不必担心展开这样的循环。重要的因素是可读性和可维护性。对于两次迭代的循环,我认为您不需要通过添加循环来增加可读性。

您真的不需要担心这一点。以您认为更容易阅读的方式编写,然后让编译器决定是否需要执行一些循环展开优化。相信编译器供应商,他们的开发人员非常擅长理解这些与优化相关的东西…

当您举这些小例子时,不应该为代码的性能操心太多。。。以更容易理解的方式编写代码


使用循环为您提供了一种缩放示例的方法,无需在任何地方进行重大更改。

ah。。我不知道编译器优化了这类问题:)@gopi1410如果你知道有多少优化会让你大吃一惊。GGCC有。例如,如果printf()调用只有一个不带格式参数的常量字符串参数,它甚至会将对printf()的调用替换为对put()的调用。我不担心这种情况的性能,我知道无论使用哪种工具,执行时间都无所谓。我想知道的是,在大型测试用例的情况下,哪一个是首选的。看看编译器的功能,不要再担心低级优化了。我几乎所有的情况下,编译器都会为您修复它。