[英]C: how do I assign values to my typed structure?
遵循jldupont關於使用可變數據定義變量的答案 ,我定義了以下內容:
enum buffer_format
{
FIFO_U8T = 0,
FIFO_U16T
};
struct buffer_param
{
enum buffer_format type;
union
{
struct buffer_fifo_u8_t *fifo_u8;
struct buffer_fifo_u16_t *fifo_u16;
} is;
};
然后,我對以下任務進行了編碼:
struct buffer_param fifo_uartTx_param;
fifo_uartTx_param.is.fifo_u8 = &fifo_uartTx;
fifo_uartTx_param.type = FIFO_U8T;
但是,我遇到一些錯誤,這些錯誤抱怨我不能簡單地進入我的buffer_param類型結構來進行這些分配。 如何將指針分配給UART fifo並設置其類型?
error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
fifo_uartTx_param.is.fifo_u8 = &fifo_uartTx;
^
error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
fifo_uartTx_param.type = FIFO_U8T;
^
由於嘗試在函數外部進行賦值,因此出現錯誤。 僅允許使用初始化程序進行定義。
要初始化此變量,請執行以下操作:
struct buffer_param fifo_uartTx_param =
{ .type = FIFO_U8T, .is= { .fifo_u8 = &fifo_uartTx } };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.