C 使用define填充结构数组
我必须使用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} } 让我在这里
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文件中?不清楚结构是否应该包含字符串的硬拷贝或只是指向它的指针。请澄清。你的定义是什么意思,一个普通的定义?你是说申报吗?