我正在编写代码来为我的学校正在制造的卫星进行矩阵运算。使用 for 循环或仅写出操作会更快且资源消耗更少吗?所有矩阵的大小都是已知的
for (i = 0; i < 3; i++)//Row
{
for (j = 0; j < 3; j++)//Column
{
result[i][j] = a[i][j] * b;
}
}
或
result[1][1] = a[1][1] * b;
result[1][2] = a[1][2] * b;
etc...
最佳答案
您正在谈论循环展开。你是对的,这是减少程序计算时间的常用技术。然而,正如评论中所说,不能绝对确定您会节省时间,因为这取决于许多因素(编译器、编译器优化级别等)。如果您选择高优化级别,编译器也可能自行展开循环。
不要忘记它需要更多的代码大小,这也是宝贵的资源。
请记住,还有其他方法可以优化代码。例如,在这里,您将数组中的所有元素乘以同一变量。也许您可以稍后在再次访问 result
array 时在代码中执行此乘法?它将节省遍历数组及其所暗示的所有内存访问。
关于c - 使用 for 循环或列出操作会更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58012355/