gpt4 book ai didi

c - 如何根据传递的结构名称部分访问结构

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:39 25 4
gpt4 key购买 nike

我有 5 个具有模式“struct_ID_name”的结构,它们都共享相同数量和类型的字段。例如

struct struct_01
{
char field1[25];
int field2;
}
struct struct_01 struct_01_name;

struct struct_02
{
char field1[25];
int field2;
}
struct struct_02 struct_02_name;

有没有办法在我传递 char ID[2] 时编写一个函数,我可以访问该特定结构的变量?例如

void foo(char * ID)
{
int i = struct_<ID>_name.field2;
printf("%d",i);
}

为了提供一些上下文,我有不同的记录,其中前 2 个字段是通用的。这两个字段告诉我记录的大小,记录的名称....每个记录类型中的字段数是不同的。每条记录的结构名称的模式为struct__name,其中ID 可以是任意两位数字。我想检索公共(public)字段。

更多信息:有一个程序正在解析文件中的记录。

一个文件可以有50种记录。每条记录包含不同数量的字段。

这50条记录都有一些共同的字段。每条记录的第一个字段告诉我记录的大小,第二个字段告诉我一些唯一的记录键第三个字段告诉我一些不同的东西。

我需要从结构/记录中解析公共(public)字段。

所以我在想一些通用的方法来实现这一点,一旦我通过了 ID,我应该能够从记录中检索大小。

最佳答案

你的要求很奇怪,你可以这样做:

void foo(char * ID)
{
if (strcmp(ID, "01"))
{
int i = struct_01_name.field2;
printf("%d", i);
}
if (strcmp(ID, "02"))
{
int i = struct_02_name.field2;
printf("%d", i);
}
else if (strcmp(ID, "03"))
{
int i = struct_03_name.field2;
printf("%d", i);
}

...

}

但我认为您的问题相当 XY Problem .您应该告诉我们更多关于您的用例的信息。

关于c - 如何根据传递的结构名称部分访问结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45029785/

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