gpt4 book ai didi

c - 如何设置多个C文件共存

转载 作者:行者123 更新时间:2023-12-02 07:20:47 26 4
gpt4 key购买 nike

我将如何设置一个结构以便我在其中包含方法

助手.c

主.c

主要.h

... 我如何在我的 main.c 中包含 helper.c 并使用 helper.c 中内置的方法?

我正在运行 makefile 作为:

all:
gcc -o main main.c
gcc -o helper helper.c



clean:
rm -f main
rm -f helper

我知道我需要一个 helper.h,但我该如何正确设置它...假设我希望我的帮助文件看起来像这样:

struct Node{
struct Node* nxt;
int x;
};

int isThere(struct Node *head, int value){

if(head==NULL){
return 0;
}
struct Node *tmp=head;

while(tmp!=NULL){
if(tmp->x==value){
return 1;
}
tmp=tmp->nxt;
}
return 0;
}

struct Node *nodeInsert(struct Node *head, int value){
if(head==NULL){
head=malloc(sizeof(struct Node));
head->x=value;
head->nxt=NULL;
printf("inserted\n");
return head;
} else if(head!=NULL && isThere(head,value)==1){
printf("duplicate\n");
return head;
} else{

struct Node *new;
struct Node *tmp=head;
while(tmp->nxt!=NULL){
tmp=tmp->nxt;
}

new=malloc(sizeof(struct Node));
new->x=value;
tmp->nxt=new;
new->nxt=NULL;
printf("inserted\n");
return head;
}}

最佳答案

我认为问题在于您不了解 C 中的编译和链接。有很多资料可以对此进行解释,这里有一个很好的资料:http://courses.cms.caltech.edu/cs11/material/c/mike/misc/compiling_c.html

你应该做的是将它们全部编译成目标文件,然后将它们链接在一起。你可以在一个命令中做到这一点

gcc -o executable main.c helper.c

或者先编译每个然后将它们链接在一起

gcc -c main.c
gcc -c helper.c
gcc -o executable main.o helper.o

确保在 helper.h 中为 helper.c 的所有函数编写原型(prototype)并在 main.c 的开头包含 helper.h

关于c - 如何设置多个C文件共存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46592168/

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