gpt4 book ai didi

C:如何为我的类型化结构赋值?

转载 作者:行者123 更新时间:2023-11-30 16:35:16 26 4
gpt4 key购买 nike

已关注 jldupont's answer在定义具有不同数据的变量时,我定义了以下内容:

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

关于C:如何为我的类型化结构赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48996793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com