【发布时间】:2017-09-17 23:00:00
【问题描述】:
我试图准确理解这段代码想要完成的任务。给出了函数中位数,但我添加了 main 函数和 typedef/prototypes 以努力理解它的作用,方法是将一些东西传递给函数。但是,我可以弄清楚将什么或如何传递给它。我知道该功能是某种形式。我真正需要知道的是传递给函数的究竟是什么? N索引的数组?
感谢您的指导!
#include <stdio.h>
#include <stdlib.h>
typedef unsigned char pix_t;
pix_t median(pix_t window[N]);
int main() {
pix_t window[] = { 4, 3, 2, 1 };
pix_t output;
output = median(window[N]);
}
pix_t median(pix_t window[N])
{
pix_t t[N], z[N];
int ii, k, stage;
// copy locally
for (ii = 0; ii<N; ii++) z[ii] = window[ii];
for (stage = 1; stage <= N; stage++) {
k = (stage % 2 == 1) ? 0 : 1;
for (ii = k; ii<N - 1; ii++) {
t[ii] = MIN(z[ii], z[ii + 1]);
t[ii + 1] = MAX(z[ii], z[ii + 1]);
z[ii] = t[ii];
z[ii + 1] = t[ii + 1];
}
}
return z[N / 2];
}
【问题讨论】:
-
不确定我是否只是想念它,但
N是在哪里定义的?似乎它甚至都无法编译。 -
另外,
median函数需要一个pix_t数组,但您发送的是单个标量值。
标签: c arrays function parameter-passing function-calls