gpt4 book ai didi

c - 将结构数组传递给 C 中不同文件中的函数

转载 作者:行者123 更新时间:2023-11-30 15:29:52 25 4
gpt4 key购买 nike

我需要将文件“file1.c”中定义的结构数组传递给另一个文件“file2.c”中定义的函数,例如“myFunc()”。问题是我不知道如何在头文件“header.h”或 file2.c 中的函数本身中设置 myFunc() 的原型(prototype),因为该结构只会在 file1.c 中定义。这是一个例子。

文件1.c

#include "header.h"

#define dim 30
#define searchAgents 30

struct Wolf{

double pos[dim];
double fitness;

}Pack[searchAgents];

int main(){
myFunc(Pack); //not sure it's ok
return 0;
}

文件2.c

#include "header.h"

void myFunc(struct Wolf Pack[]){ //I don't know how to set this argument
Pack[0].pos[0] = 1; //just an example
}

标题.h

#ifndef HEADER_H_
#define HEADER_H_

void myFunc(struct Wolf); //I don't know how to set this prototype

#endif

我读过有关将结构传递给函数的内容,但是当您在另一个文件中定义函数时,情况会有所不同。感谢您抽出时间。

最佳答案

标题.h

#ifndef HEADER_H_
#define HEADER_H_

//Add all needed includes

#define dim 30
#define searchAgents 30

typedef struct Wolf{
double pos[dim];
double fitness;
}Pack; //Declaration

void myFunc(Pack *);

#endif

在主线

#include "header.h"

int main(){
Pack packArray[searchAgents]; //Definition or initialization if you like
myFunc(packArray);
return 0;
}

文件2.c

#include "header.h"

void myFunc(Pack *pack){ //just a pointer to Pack structure
pack[0].pos[0] = 1;
}

关于c - 将结构数组传递给 C 中不同文件中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26000119/

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