这是我的第一个问题;希望我能够清楚......
我有这个结构可用
typedef struct COLORTRIPLE
{
byte blue;
byte green;
byte red;
}
包含在另一个结构中:
struct color_temp
{
COLORTRIPLE color;
int temp;
};
和(编辑)
#define PIXEL(image, row, column) \
image.pixel [(row) * image.width + (column)]
是一个宏。
因此会有PIXEL(bmpin,row,column).red, PIXEL(bmpin,row,column).green and PIXEL(bmpin,row,column).blue
。
我需要逐个像素地扫描位图文件,并检查当前像素是否等于color_temp结构的一种颜色。
我尝试过类似的事情:
if ((PIXEL(bmpin,row,column))==(map[n].color))
{...}
,其中
struct color_temp map[]
是color_temp的向量。
但是cygwin gcc说:
error:request for member 'color' in something not a struct or a union
有什么建议吗?
由于
标记
答案 0 :(得分:2)
试试这个:
int is_pixels_equal (COLORTRIPLE a, COLORTRIPLE b) {
return (a.red == b.red && a.green == b.green && a.blue == b.blue);
}
答案 1 :(得分:0)
你不能直接比较C中的结构,它没有定义这样的运算符。因此,你必须自己实施,正如Williham Totland所说。有关更多讨论,请参阅this question。