gpt4 book ai didi

c - 初始化结构中的指针数组时是否需要花括号?

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:59 30 4
gpt4 key购买 nike

我使用 Dev C++ 和 SPC5 Studio 编译了一个 C 代码,它的结构包含指向另一个结构的指针数组。

   typedef struct
{
uint16 Identifier_u16;
void* const DataFncType;
}ClassCfg_ts;

typedef struct
{
uint32 Val_u32;
ClassCfg_ts* ClassRef_pu[2];
}atrb_paramCfg_ts;

初始化如下

ClassCfg_ts ClassCfg1_s[] = {
{0,writeFucntion},//read write fucntion
{1,writeFucntion},//read write fucntion
{2,writeFucntion},//read write fucntion
};

ClassCfg_ts ClassCfg2_s[] = {
{0,writeFucntion},//read write fucntion
{1,writeFucntion},//read write fucntion
{2,writeFucntion},//read write fucntion
};

atrb_paramCfg_ts atrb_paramCfg_s[] =
{
{0,ClassCfg1_s},
{0,ClassCfg2_s},
};

定义 writeFunciton 的地方。当使用 Dev C++ 时,此初始化工作完美,而在 SPC5 studio 中给出包含花括号的警告,并且仅当初始化更改为时它才会消失

atrb_paramCfg_ts atrb_paramCfg_s[] =
{
{0,{ClassCfg1_s}},
{0,{ClassCfg2_s}},
};

其中哪一个是正确的初始化?

最佳答案

ClassRef_p 是指向 ClassCfg_ts 的指针数组。您需要支撑初始化数组。 {ClassCfg2_s} 是在上面的代码片段中初始化它的正确方法。

关于c - 初始化结构中的指针数组时是否需要花括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51836786/

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