c - 使用 for 循环或列出操作会更快吗?

标签 c

我正在编写代码来为我的学校正在制造的卫星进行矩阵运算。使用 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...

最佳答案

您正在谈论循环展开。你是对的,这是减少程序计算时间的常用技术。然而,正如评论中所说,不能绝对确定您会节省时间,因为这取决于许多因素(编译器、编译器优化级别等)。如果您选择高优化级别,编译器也可能自行展开循环。

不要忘记它需要更多的代码大小,这也是宝贵的资源。

请记住,还有其他方法可以优化代码。例如,在这里,您将数组中的所有元素乘以同一变量。也许您可以稍后在再次访问 resultarray 时在代码中执行此乘法?它将节省遍历数组及其所暗示的所有内存访问。

关于c - 使用 for 循环或列出操作会更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58012355/

相关文章:

c++ - 有 GetModuleThreadId 函数吗?

c - '\0' evaluates false, "\0"评估为真

c - 有没有办法使用fork和exec在c程序中连续实现两个管道?

objective-c - 为什么某些 C 数学表达式需要将常量显式标记为 float ?

创建新的 tcp 套接字 - 服务器端

c - Freeimage ANSI C Codeblock Windows - 链接 - 新手

c - 将 CUDA 静态或共享库与 gcc 链接时出现 undefined reference 错误

c - 使用字符串数组时出现总线错误 10 - C

c - 在 C 中编写一个 shell 我的程序无法退出()

c - 结构体和指针算术