我是 C 新手,所以我希望在这里尽可能多地了解外部函数、指针和结构
我的想法:创建一个结构数组,然后编写“外部”函数(即保存在与主程序不同的文件中的函数),我可以使用它来修改结构数组中结构中的字段。
我的努力:
extern void fillMass(Body *p, int size)
typedef struct body Body;
int main() {
body bodies[n] /* creates an array of structures of type body (yes this is a hw problem) */
int sizeBodies = sizeof(bodies)/sizeof(struct body);
Body *planets;
planets = &bodies[0];
fillMass(planets, sizeBodies);
}
当我在 Main 下面定义了 fillMass 时,这才起作用。但我想在另一个文件中定义它,所以我尝试制作 fillMass.h (我首先使用 fillMass.c 但后来发现很多例子,人们做了这样的事情并使用 include 语句来包含他们的外部函数,我猜测需要一个 .h 文件...?或者这只是一个约定?)
所以我写了一个简单的文件,名为 fillMass.h
void fillMass(Body* p, int size) { /* this is line 10 of the code */
p[0].mass=99;
p[1].mass=350; /*just testing, not using size parameter */
}
但这行不通。我收到错误
fillMass.h:10: error: expected ‘)’ before ‘*’ token
有什么想法吗?这是 fillMass.h 的问题;当我开始工作时,我是否能够毫无困难地完成我打算做的事情? 感谢您的阅读。
最佳答案
在 p[0].mass = 99 后面添加“;”。
关于c - C中的外部函数修改结构体数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22288395/