在下面的make_quad()函数中,如何为quad_t结构中的vertex_color数组设置默认值?如何初始化函数中的结构数组?
/* RGBA color */
typedef struct {
uint8_t r,g,b,a;
} rgba_t;
/* Quad polygon - other members removed */
typedef struct {
rgba_t vertex_color[ 4 ];
} quad_t;
在其他地方,一个功能,使和初始化四:
quad_t *make_quad() {
quad_t *quad = malloc(sizeof(quad_t));
quad->vertex_color = ??? /* What goes here? */
return (quad);
}
很明显,我可以做这样的:
quad->vertex_color[ 0 ] = { 0xFF, 0xFF, 0xFF, 0xFF };
...
quad->vertex_color[ 3 ] = { 0xFF, 0xFF, 0xFF, 0xFF };
但这:
quad->vertex_color = {
{ 0xFF, 0xFF, 0xFF, 0xFF },
{ 0xFF, 0xFF, 0xFF, 0xFF },
{ 0xFF, 0xFF, 0xFF, 0xFF },
{ 0xFF, 0xFF, 0xFF, 0xFF }
};
...结果在“错误:经过在'{'标记“之前插入表达式。
编辑:修正了几个错别字
Missign分号rgba_t vertex_color后[4]? – zoli2k 2010-06-13 07:51:27