C语言 为什么会出现“错误:变量'sum_r'已设置但未使用[-Werror,-Wunused-but-set-variable]”当我在for循环中设置变量时?

wgeznvg7  于 2023-03-01  发布在  其他
关注(0)|答案(1)|浏览(747)

为什么当我在一个for循环中设置变量sum_rsum_gsum_b,然后试图在另一个for循环中更改它们的值时,会得到一个错误error: variable 'sum_r' set but not used [-Werror,-Wunused-but-set-variable]
下面是我目前的代码:

// Blur image
void blur(int height, int width, RGBTRIPLE image[height][width])
{
    RGBTRIPLE new[height][width];

    for (int i = 0; i < height; i++)
    {
        for (int j = 0; j < width; j++)
        {
            int sum_r = 0;
            int sum_g = 0;
            int sum_b = 0;

            for (int ji = i - 1; ji < 3; ji++)
            {
                for (int jj = j - 1; jj < 3; jj++)
                {
                    int rgb_r = image[ji][jj].rgbtRed;
                    int rgb_g = image[ji][jj].rgbtGreen;
                    int rgb_b = image[ji][jj].rgbtBlue;

                    sum_r += rgb_r;
                    sum_g += rgb_g;
                    sum_b += rgb_b;
                }
            }
        }
    }
    return;
}

我试过使用指针和地址,但我似乎不能弄清楚。有人能解释一下为什么会发生这种情况吗?

wnavrhmk

wnavrhmk1#

1.在void函数中不需要return
1.你得到这个消息是因为你在循环中设置了那些变量,但是你没有使用它。你的函数可能被简化为无操作,编译器警告你忘记对你的值做一些事情。
优化编译器会将此函数缩减为:

void blur(int height, int width, RGBTRIPLE image[height][width])
{
}

https://godbolt.org/z/cEeejGKrh

相关问题