【问题标题】:A function within a loop, with unchanged arguments循环中的函数,参数不变
【发布时间】:2018-06-08 11:41:21
【问题描述】:

我想在循环中调用一个函数。该函数接受三个参数。我希望其中两个在循环中保持不变,而只有第三个在我的循环中受到影响。

编辑版本:这是一个示例代码:

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

有没有办法实现我的想法?

【问题讨论】:

  • 不要编辑您的问题来修复您最初要求的错误。在当前状态下,您的问题实际上毫无意义,因为您显示的代码不可能产生您报告的错误。
  • 大声笑。 C++ 书籍列表here.
  • @snr 我真的不明白你为什么要说(骨干??),但你不应该告诉他编辑问题以合并代码修复,因为这使得问题在问答中完全没用问题应该包含问题而不是答案的网站
  • @xava 不用担心,当您对网站有更好的感觉时,情况会有所改善。

标签: c++ function loops for-loop


【解决方案1】:

您使用了错误的语法,这就是您收到错误的原因。

声明函数时,指定参数的类型(不要忘记返回类型):

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

希望这会有所帮助!

【讨论】:

  • Function 的返回类型在哪里??我认为这不是充分的答案。如果Function 是返回类型,那么它的名字在哪里?
  • 我完全同意...您的回答要好得多,所以我没有解决我的问题。但我现在会解决它......不应该留下误导性的答案
  • 完成了,但对提出这个问题的新人要放轻松。显然他是网站上的新人,还在学习编程
  • 好的,谢谢您的建议。我已经把它放在脑海里了。
【解决方案2】:

你忘了,我想你不知道,很多事情。跟踪 cmets。但是,您必须为初学者阅读 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); 

    }
}

【讨论】:

    【解决方案3】:

    做类似的事情

    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,但它们是未定义的(它们具有未知值)。在循环之前声明并初始化它们。最后也没有分号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      相关资源
      最近更新 更多