Функция внутри цикла с неизменными аргументами - PullRequest
0 голосов
/ 08 июня 2018

Я хочу вызвать функцию в цикле.Функция принимает три параметра.Я хочу, чтобы двое из них остались неизменными в цикле, в то время как только третий влияет на мой цикл.

Отредактированная версия: Вот пример кода:

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)....

Есть ли способ реализовать мою идею?

Ответы [ 3 ]

0 голосов
/ 08 июня 2018

Вы забыли, я думаю, вы не знаете, множество вещей.Следите за комментариями.Тем не менее, вы должны прочитать книгу 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); 

    }
}
0 голосов
/ 08 июня 2018

Вы используете неправильный синтаксис, и именно поэтому вы получаете ошибку.

Когда объявляет функцию, вы указываете тип параметров(и не забывайте тип возврата):

void Function(int v1, int v2, int v3) {
    // your function body here
};

Когда вызывает функцию, вы просто передаете параметры:

Function(1, 2, 3);

В вашем случае,компилятор подумал, что вы пытаетесь объявить другую функцию, находясь в теле другой.

Итак, в конце, и предполагая, что v1 и v2 уже определены, вы должны записать свой main как

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)
  }
}

Надеюсь, это поможет!

0 голосов
/ 08 июня 2018

Сделайте что-то вроде

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, но они не определены (имеют неизвестное значение).Объявите и инициализируйте их перед циклом.Также нет точки с запятой в конце.

...