如何在C中从具有多个参数的函数中调用单个参数?

时间:2019-05-12 04:29:18

标签: c

假设您有几个类似的功能:

void Inventory(int index, char input[], int qty)

void AddItem(){
     int index = Inventory(index);
     if (int i = 0; i < index; i++){
          ...
     }
}

但这给了我一个错误'无法使用类型为“ Void”的值来初始化类型为“ int”的实体”

自从我还是编程新手以来,有人可以向我详细解释吗?

4 个答案:

答案 0 :(得分:3)

您正在尝试将index初始化为int,其值是通过调用Inventory(index)返回的。但是您提供的Inventory函数的返回类型为void,而不是预期的int,因此无法获取该值。

此外,您对Inventory的调用缺少chat input[]int qty参数的参数。另外,index在您尝试使用时未初始化(在index的定义内)。

答案 1 :(得分:2)

函数Inventory不返回任何内容(即void),并且您试图对类型int的变量不产生任何影响。这就是编译器抱怨的原因。

解决方案是让您的Inventory函数返回一个int值而不是void

答案 2 :(得分:0)

首先,您提供的问题和代码段具有误导性。

第二,由于函数Inventory的返回类型为Void,因此您将收到此错误,这意味着它什么也不返回。并且您尝试不为int类型的变量索引分配任何内容。

而且,如果您尝试调用多参数函数而不必传递所有参数,则将其余参数设为可选。

答案 3 :(得分:0)

  1. void foo(/ ... /)表示函数foo不返回任何内容。因此,您不能为任何内容分配任何内容。
  2. 在C中,您需要传递所有参数。在其他语言(如C ++)中,某些参数可能具有默认值,并且在调用函数时不必传递它们。但是用C语言是不可能的,您需要传递所有参数(参数)