簡體   English   中英

C:如何為我的類型化結構分配值?

[英]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.

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