当我接受变量地址时,以参数作为指针的函数不起作用

问题描述 投票:0回答:1
The code here is for filtering an image
        //variables for purpose of shortening some lines
        int b = image[i][j].rgbtBlue;
        int g = image[i][j].rgbtGreen;
        int r = image[i][j].rgbtRed;

        int bound = 255;

        //variables here are for rounding purposes
        float Sb = .272 * r + .534 * g + .131 * b;
        int tempSb = .272 * r + .534 * g + .131 * b;
        
        //rounding to nearest integer
        if (Sb != tempSb && Sb >= tempSb + 0.5)
        {
            tempSb++;
        }
        //checking if that rounded integer is higher than bound (and if so set it to bound)
        void nohigherthan_int(&bound, &tempSb);
        //setting the correct pixel to sepia blue
        image[i][j].rgbtBlue = tempSb;


        void nohigherthan_int(int *a, int *b)
        {
            if (*a <= *b)
            {
                *b = *a;
            }
        }

这段代码适用于我正在努力解决的功能,因为终端说,首先
指向 &bound 的“预期参数声明符”(即绑定变量的地址) 其次,我放置的原型与功能不匹配(又名是说 没有原型的函数声明在 c 的所有版本中均已弃用,与 a 冲突 先前的声明然后指向我的原型和我在其中放置变量的函数 &bound, &tempSb 函数原型只是我上面声明的函数的复制粘贴(我把它放在上面 其余代码)

我尝试将值更改为 int *a = &bound 和 int *b = &tempSb 并且错误确实消失了 但不支持默认参数。

c function debugging
1个回答
0
投票
void nohigherthan_int(&bound, &tempSb);

这条线是一个问题,更准确地说是

void
。 删除
void
,就OK了

© www.soinside.com 2019 - 2024. All rights reserved.