C 使用define填充结构数组

C 使用define填充结构数组,c,C,我必须使用define创建结构数组。请告诉我怎么做 file1.c have data { "string1", 13 } file2.c have data { "string2", 14 } 需要将此数据传递给一个通用定义,以便它可以填充如下数据: struct test data[]= { {"string1", 13}, {"string2", 14} } 让我在这里

我必须使用define创建结构数组。请告诉我怎么做

file1.c have data
{
    "string1",
     13         
}

file2.c have data              
{
    "string2",
    14         
}
需要将此数据传递给一个通用定义,以便它可以填充如下数据:

struct test data[]=
{
    {"string1", 13}, 
    {"string2", 14}
}
让我在这里这样阐述:

file1.c
ADD_DATA_IN_STRUCT(....) ---> pass data {"string1", 13}

file2.c
ADD_DATA_IN_STRUCT(....) ---> pass data {"string1", 14}

main.h
#define ADD_DATA_IN_STRUCT(....)  ---> should expand to
struct test data[]=
{
    {"string1", 13}, 
    {"string2", 14}
}

希望有帮助,我遗漏了细节

// 1. define the test struct
define struct test {
    char *string;
    int number;
};

// 2. define the data array
struct test data[2];

// 3. read file, assign value to corresponding fields in data array
// you may want to dynamically allocated memory for `string` using `malloc`
// or if the string has a maximum size, define it using `char string[MAX_SIZE]` instead

抱歉,我没有提供在预编译期间需要此初始化结构的详细信息。因此,寻找一个通用的定义,它可以从其他文件中获取数据,构建初始化的结构,并且在预编译期间出现。你的意思是在文件进入编译器之前将其复制到C源文件?在这种情况下,由于C不是一种动态编程语言,您需要使用其他一些语言(如Python或类似于shell脚本的程序)来完成上述步骤,将数据文件和C源文件视为文本文件。@ManishB为什么不直接读取文件并自己插入呢?这是最简单的方法。您的数据保存在其他c文件中?不清楚结构是否应该包含字符串的硬拷贝或只是指向它的指针。请澄清。你的定义是什么意思,一个普通的定义?你是说申报吗?