这是我拥有的一个struct
:
typedef struct
{
float r, g, b;
} color_t;
我想将这个结构体的复合字面量作为参数传递给一个函数,就像这样:
,
void printcolor(color_t c)
{
printf("color is : %f %f %f\n", c.r, c.g, c.b);
}
printcolor({1.0f, 0.6f, 0.8f});
然而,这给了我一个错误:
错误:在“{”标记之前预期表达式
这是我拥有的一个struct
:
typedef struct
{
float r, g, b;
} color_t;
,
void printcolor(color_t c)
{
printf("color is : %f %f %f\n", c.r, c.g, c.b);
}
printcolor({1.0f, 0.6f, 0.8f});
错误:在“{”标记之前预期表达式
printcolor((color_t){1.0f, 0.6f, 0.8f});
printcolor((color_t) {1.0f, 0.6f, 0.8f});
这段代码中的语法看似强制类型转换,但实际上是一个复合字面量。请注意不要被语法所迷惑。 - mediocrevegetable1