对结构中变量的赋值操作不起作用

问题描述 投票:0回答:1

我正在编写一个c程序,并且已经调试了几天。我想我已经解决了问题。

这是代码段和结果输出:

// now setting the new RGB values
int blue_val = (long) round(sqrt(((gx_b * gx_b) + (gy_b * gy_b))));
temp[pixel_i][pixel_j].rgbtBlue = blue_val;
printf("%i  %i\n", blue_val, temp[pixel_i][pixel_j].rgbtBlue);

这里是输出:

322  66
396  140
322  66
262  6
60  60
295  39
322  66
385  129
322  66

注意:我还设置了绿色和红色值,它们在结构中的写法也不错。我在这里打印的唯一蓝色值由于某种原因未写入。为了使画面更清晰,下面是其余的代码:

temp[pixel_i][pixel_j].rgbtGreen = (long) round(sqrt(((gx_g * gx_g) + (gy_g * gy_g))));
temp[pixel_i][pixel_j].rgbtRed = (long) round(sqrt(((gx_r * gx_r) + (gy_r * gy_r))));

if (temp[pixel_i][pixel_j].rgbtBlue > 255)
    temp[pixel_i][pixel_j].rgbtBlue = 255;
if (temp[pixel_i][pixel_j].rgbtGreen > 255)
    temp[pixel_i][pixel_j].rgbtGreen = 255;
if (temp[pixel_i][pixel_j].rgbtRed > 255)
    temp[pixel_i][pixel_j].rgbtRed = 255;
// printf("R:%i G:%i B:%i\n", temp[pixel_i][pixel_j].rgbtRed, temp[pixel_i][pixel_j].rgbtGreen, temp[pixel_i][pixel_j].rgbtBlue);
return;
c variable-assignment
1个回答
0
投票

问题是结构rgbtBlue中的变量的类型为BYTE,因此不允许大于255的分配。

发布后几秒钟就知道了。。

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