我想在循环中调用一个函数。该函数有三个参数。我希望他们中的两个在循环中保持不变,而只有第三个在我的循环中受到影响。
已修改版本:以下是示例代码:
void Function(int v1, int v2, int v3) {};
int main(int argc, char** argv) {
int a;
int b;
for (int i = 0; i < 5; ++i) {
Function(int a, int b, i)
}
}
这是我编译此代码时遇到的错误:
error:
expected expression Function(int v1, int v2, i)....
有没有办法实现我的想法?
答案 0 :(得分:4)
您使用的语法错误,这就是您收到错误的原因。
当声明一个函数时,指定参数的类型(并且不要忘记返回类型):
void Function(int v1, int v2, int v3) {
// your function body here
};
当调用函数时,只需传递参数:
Function(1, 2, 3);
在你的情况下,编译器认为你试图在另一个函数的体内声明另一个函数。
所以,最后,假设已经定义了v1和v2,你需要将你的主要编写为
int main () {
// don't forget to define v1 and v2
int v1 = 10;
int v2 = 20;
for (int i=0; i <5; i++) {
Function(v1, v2, i)
}
}
希望这有帮助!
答案 1 :(得分:2)
你忘了,我想你不知道,还有很多东西。跟踪评论。但是,您必须为初学者阅读C书。
//whereIsReturnTypeofTheFunction ???
void Function(int v1, int v2, int v3) {};
int main () {
// you need variables to be passed to Function
int a;
int b;
// for condition is vetted by looking i, not int, in the middle
for (int i=0; i <5; i++) {
Function(a, b, i);
}
}
答案 2 :(得分:1)
执行类似
的操作void Function(int v1, int v2, int v3) { };
int main () {
int v1 = 0;
int v2 = 0;
for (int i = 0; i < 5; i++) {
Function(v1, v2, i);
}
}
您的代码存在一些问题:
for (int i=0; int <5; i++)
您可以在此处使用int
代替i
作为运行条件。
Function(int v1, int v2, i)
这里你声明v1和v2,但是它们是未定义的(它们具有未知值)。在循环之前声明并初始化它们。最后也没有分号。