为什么当我在一个for循环中设置变量sum_r
sum_g
和sum_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;
}
我试过使用指针和地址,但我似乎不能弄清楚。有人能解释一下为什么会发生这种情况吗?
1条答案
按热度按时间wnavrhmk1#
1.在
void
函数中不需要return
1.你得到这个消息是因为你在循环中设置了那些变量,但是你没有使用它。你的函数可能被简化为无操作,编译器警告你忘记对你的值做一些事情。
优化编译器会将此函数缩减为:
https://godbolt.org/z/cEeejGKrh