gpt4 book ai didi

c - 在 C 中使用结构体作为输入的语法

转载 作者:行者123 更新时间:2023-11-30 17:34:42 24 4
gpt4 key购买 nike

我试图将一个程序分成几个部分(例如,将函数单独编写而不是在同一个文件中)。我正在使用的函数输出一组结构,当我将所有内容都放在一个文件中时,它运行良好。我想知道如何从我的 main 中的单独文件中正确调用此结构函数。目前,我有这个:

void submerged_volume(double L1, double L2, double Lavg, double H, struct boat_params *values);

int main () {

double L1, L2, Lavg, H;
struct boat_params values[211];

L1 = 17.6;
L2 = 3;
Lavg = 4;
H = 4.5;

submerged_volume(L1, L2, Lavg, H, values);

unsigned char i = 0;
for (i = 0; i <= 90; ++i) {
printf("V = %lf\nUc = %lf\nVc = %lf\n", values[i].V, values[i].Uc, values[i].Vc);
}



return 0;

}

submerged_volume 函数的启动方式如下: void submerged_volume(double L1, double L2, double Lavg, double H, structboat_params *结果)

注意 - 当主文件位于同一文件中时,它可以工作。目前,我在将它们放在单独的文件中时遇到的错误是:

friction_equilibrium.c:12:26: error: array has incomplete element type 'struct boat_params'
struct boat_params values[211];
^
friction_equilibrium.c:12:8: note: forward declaration of 'struct boat_params'
struct boat_params values[211];
^
friction_equilibrium.c:19:1: warning: implicit declaration of function 'submerged_volume' is invalid in C99 [-Wimplicit-function-declaration]
submerged_volume(L1, L2, Lavg, H, values);

我希望这能得到解释!关于这些错误的含义以及如何修复它们有什么想法吗?预先感谢您!

最佳答案

错误告诉您的是 structboat_params 尚未定义。您需要在使用它之前定义它。

这通常是通过使用头文件来完成的,您可以在需要时#include。通常将结构定义和函数原型(prototype)放在头文件中。

关于c - 在 C 中使用结构体作为输入的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23219607/

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