c - 创建用于矩阵加法的库函数时传递给函数的最小参数数量是多少

标签 c matrix

我正在为基本矩阵运算创建一个简单的库函数,其中一个是矩阵加法,因为IMO该函数似乎传递给它的参数太多,但另一方面我觉得传递的所有参数都是必需的并且没有其他方法可以直接在函数中获取它们。

所以这是代码片段:

  void mat_add(int r1, int c1, int m1[][c1], int r2, int c2, int m2[][c2],int res[][c1])
{
    if (r1 == r2 && c1 == c2)
    {
        for (int i = 0; i < r1; i++)
        {
            for (int j = 0; j < c1; j++)
            {
                res[i][j] = m1[i][j] + m2[i][j];
            }
        }
    }
    else
    {
        fprintf(stderr, "ERROR:matrix sizes are not same\n");
        exit(-1);
    }
}

当然,真正需要的参数应该传递,
但我真的不知道我做的事情太多了,能不能减少,
那么有什么方法可以减少传递的参数数量并从函数本身获取所需的数据(#rows 和 #columns)?

最佳答案

参数的最小数量为 1。一个结构体或指向结构体的指针,其中包含执行操作所需的所有参数。

关于c - 创建用于矩阵加法的库函数时传递给函数的最小参数数量是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36667728/

相关文章:

java - 拆分矩阵中的二进制值

c# - XNA - 矩阵等效于 SpriteBatch.Draw 转换?

更有效地复制函数

c - 当您使用 void (*)() 指针调用返回 int 的函数时会发生什么?

Python:二维列表

r - 什么时候建议在 R 中使用稀疏矩阵?

c - C中字符串的数组和指针表示法之间的区别

c - c中的翻转位

c - 操作系统 : proc_pidinfo returns 0 for other user's processes

c - 如何从 .ini 文件中读取?