我有一个巨大的 C 文件。在文件中,有一个巨大的结构(~> 100 万行)。有没有办法使用额外的内核并行编译这个文件?
编辑:对不起,在查看了我的代码和我的问题之后,真正的大事不是“结构”,而是结构数组......
我有一个巨大的 C 文件。在文件中,有一个巨大的结构(~> 100 万行)。有没有办法使用额外的内核并行编译这个文件?
编辑:对不起,在查看了我的代码和我的问题之后,真正的大事不是“结构”,而是结构数组......
如果是超过 100 万行的结构定义,那么您可能不走运。
但是,如果您要声明一个结构变量,它是一个多行结构类型的数组(或者不是一个数组,而只是一个非常大的结构),那么我建议将变量声明单独放在一个单独的 .c 文件中,并且在需要访问它的任何其他 c 文件中使用 extern 关键字。这样,它只需要在更改时重新编译。
例如,如果您有以下情况:
//Filename: onefile.c
struct _bigStruct{
int type;
char *name;
}bigStruct[] = {
{ 1, "One" },
{ 2, "Two" },
{ 3, "Three" },
{ 4, "Four" },
...
};
int someFunction(int j, int x)
{
if (j == bigStruct[x])
//do something
}
然后我将其更改为以下内容:
//Filename: bigstruct.h
struct _bigStruct{
int type;
char *name;
};
和
//Filename: bigstruct.c
struct _bigStruct bigStruct[] = {
{ 1, "One" },
{ 2, "Two" },
{ 3, "Three" },
{ 4, "Four" },
...
};
和
//Filename: main.c
#include "bigstruct.h"
extern struct _bigStruct bigStruct[];
int someFunction(int j, int x)
{
if (j == bigStruct[x].type)
//do something
}