初始化结构数组时,逗号表达式的左操作数无效

时间:2014-09-30 01:07:52

标签: c

这是pixel_t struct

typedef struct pixelType {
   unsigned char r;          /* red field                  */
   unsigned char g;          /* green field                */
   unsigned char b;          /* blue field                 */
} pixel_t;

我正在尝试初始化pixel_t结构列表但是收到错误,说明逗号表达式的左手操作数无效。这是我初始化它的地方:

pixel_t pixVals[8] = { (pixel_t)(255,255,255), (pixel_t)(255,0,0), (pixel_t)(0,0,255), (pixel_t)(128,0,255), (pixel_t)(0,0,0), (pixel_t)(0,255,0), (pixel_t)(255,128,0), (pixel_t)(255,255,0) };

有任何帮助吗?

1 个答案:

答案 0 :(得分:1)

正确的语法是:

pixel_t pixVals[8] = { {255, 255, 255}, {255, 0, 0}, 

等。或者,在块范围内,您可以使用结构文字:(pixel_t){255, 255, 255}

当你使用括号时,你有一个使用逗号运算符的表达式,这意味着丢弃除最右边操作数之外的所有操作数。