我正在为基本矩阵运算创建一个简单的库函数,其中一个是矩阵加法,因为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/