gpt4 book ai didi

c - 当我尝试在 C 中调用带参数的函数时出现错误 "error: expected expression before..."

转载 作者:太空宇宙 更新时间:2023-11-04 03:41:23 25 4
gpt4 key购买 nike

我的代码如下:

FILE *test
char line[50];
fp = fopen(arg[5], "r");

doSomething(File test, char line[50]); // declare function
doSomething(fp, line[50]); // call function

我在“FILE”错误之前收到“预期的错误表达式”。我已经尝试了许多不同的语法变体,但我仍然遇到这个错误,或者更多错误。我意识到当我调用函数时,我只需要让参数在同一范围内并事先声明函数,我认为我这样做了。

我只是希望能够无错误地调用该函数。

最佳答案

您代码中的问题是,如果没有前向声明,第一个assummed 声明实际上被解释为函数调用[函数的隐式声明]。在那里,文件测试 被解释为实际参数,而不是参数。在那里,FILE 是保留关键字,File test 没有有效参数,将引发错误。

在函数声明的代码中,将 th3 声明移到 main() 之外,请指定函数的返回类型并更正第一个参数的类型。

改变

 doSomething(File test, char line[50]);

 int doSomething(File * test, char line[50]);

注意:始终启用[并注意]编译器警告。启用警告后,您的编译器应该向您显示警告

warning: implicit declaration of function

在这些情况下。

另外,调用错误。 line[50] 将引用数组后面的字符。将调用更改为:

doSomething(fp, line); // call function

关于c - 当我尝试在 C 中调用带参数的函数时出现错误 "error: expected expression before...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28340646/

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