gpt4 book ai didi

c - 并行编译一个巨大的 C 文件(最好使用 gcc)

转载 作者:行者123 更新时间:2023-12-02 00:16:42 26 4
gpt4 key购买 nike

我有一个巨大的 C 文件。在文件中,有一个巨大的结构(~> 100 万行)。有没有办法使用额外的核心并行编译这个文件?

编辑:抱歉,在检查了我的代码和我的问题之后,真正的巨人不是“struct”,而是结构数组...

最佳答案

如果是超过 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
}

关于c - 并行编译一个巨大的 C 文件(最好使用 gcc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12714925/

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