c - 用实际代码调用函数

标签 c

我想做的是调用这个函数...

assign_sum_to_pixel(&current_pixel, sum);

并将其替换为它调用的实际代码,即...

/* 
 * assign_ sum_ to_ pixel - Computes averaged pixel value in current_pixel 
 */


static void assign_ sum_ to_ pixel (pixel *current_ pixel, pixel_ sum sum) 

{

    current_ pixel->red = (unsigned short) (sum.red/sum.num);
    current_ pixel->green = (unsigned short) (sum.green/sum.num);
    current_ pixel->blue = (unsigned short) (sum.blue/sum.num);
    return; 

}

我想到的是这个......

/*
 * mysmooth1 - my smooth1 
 */


char mysmooth1_descr[] = "my smooth1: My smooth1";

void mysmooth1(int dim, pixel *src, pixel *dst)

{

    int i, j;
    int ii, jj;
    pixel_ sum sum;
    pixel current_ pixel;

    for (i = 0; i < dim; i++)
    for (j = 0; j < dim; j++)
    {
    initialize_ pixel_ sum (&sum);
    for(ii = max(i-1, 0); ii <= min(i+1, dim-1); ii++) 
    for(jj = max(j-1, 0); jj <= min(j+1, dim-1); jj++) 
        accumulate_ sum(&sum, src[RIDX(ii, jj, dim)]);
    {
    ***current_ pixel->red = (unsigned short) (sum.red/sum.num);
    current_ pixel->green = (unsigned short) (sum.green/sum.num);
    current_ pixel->blue = (unsigned short) (sum.blue/sum.num);***    


    ***(These three lines above are the lines I inserted which is where the function call use to be)***

    dst[RIDX(i, j, dim)] = return;

    }
    }
}

但是...由于某种原因,当我运行代码时它无法正常工作并出现此错误

kernels.c:456: error: invalid type argument of â->â

kernels.c:457: error: invalid type argument of â->â

kernels.c:458: error: invalid type argument of â->â

kernels.c:459: warning: statement with no effect

我添加新代码的地方...

current_ pixel->red = (unsigned short) (sum.red/sum.num);

current_ pixel->green = (unsigned short) (sum.green/sum.num);

current_ pixel->blue = (unsigned short) (sum.blue/sum.num);    

如果我做错了什么,有人能告诉我吗……我是不是漏掉了括号?我没有正确初始化我的变量吗?返回不应该在底部等于 dst[RIDX(i, j, dim)] 任何帮助、评论和建议将不胜感激。谢谢。

最佳答案

不要手动内联。 Use the inline keyword或者更好,让编译器决定。

关于c - 用实际代码调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1515023/

相关文章:

linux - get_current() 在此内核模块中返回什么?

c - pic18f在C中的延迟x微秒

CreateProcessA %appdata%

c - 关于c中的memset()函数?

c++ - 当工件是库且标志影响 C 或 C++ header 时,功能标志/切换

c++ - 在派生类型中使用可分配的目标变量

c++ - 对字符串 C 的数组进行合并排序

c - vsnprintf 和 vsprintf_s 有什么区别?

c++ - linux和windows串口通信

c - 内存在变量赋值之前不包含垃圾