簡體   English   中英

如何將結構復合文字作為參數傳遞給 function?

[英]How can I pass a struct compound literal to a function as argument?

這是我擁有的struct

typedef struct 
{
    float r, g, b;
} color_t;

我想將此struct的復合文字傳遞給 function 作為參數,如下所示:

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});

但是,這給了我一個錯誤:

錯誤:“{”標記之前的預期表達式

C 中的復合文字必須在大括號括起來的初始值設定項列表之前具有指定的類型(使用'cast-like'語法)。 因此,如評論中所述,您應該將 function 調用更改為:

printcolor((color_t){1.0f, 0.6f, 0.8f});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM