gpt4 book ai didi

c - 处理 C 结构数组

转载 作者:太空宇宙 更新时间:2023-11-03 23:30:38 24 4
gpt4 key购买 nike

我有一个C形式的结构:

#define RGB_TYPE 1
#define YUV_TYPE 2
#define MAX_LIST 20


typedef struct
{
uint16_t a[2];
uint8_t b;
float_t c;

} mystruct;

我有一个像这样的 mystruct 数组

 mystruct MyStructList[MAX_LIST]=  {
{{100, 200}, RGB_TYPE, 25.0},
{{200, 400}, RGB_TYPE,25.0},
{{300,600} ,YUV_TYPE ,30.0},
{{400,600},YUV_TYPE, 30.0}


};

在我的代码中,我执行以下操作;

 mystruct config;
int i = 0;

.....
for(i=0;i<4;i++)
{
config = MyStructList[i];
/* further processing on config */
some_func(i,&config);

}


int some_func(int x, mystruct* pstruct );
{
/* using pstruct values and storing them in internal arrays */
}

这种结构复制和处理是否有效? 我正在使用 mingw gcc

最佳答案

它看起来不错,但请注意 config = MyStructList[i]; 制作了该结构的浅拷贝。如果要对原始数组进行操作,mystruct应该是一个指针,取MyStructList[i]的地址。

例如:

for(i=0;i<4;i++)
{
mystruct * config = &MyStructList[i];
some_func(i, config);
}

关于c - 处理 C 结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16529520/

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