gpt4 book ai didi

c - 参数与 C 中的原型(prototype)不匹配

转载 作者:太空宇宙 更新时间:2023-11-04 05:53:19 24 4
gpt4 key购买 nike

我应该为杂货店库存编写代码,在单独的函数中进行计算。我在没有函数的情况下运行了代码,一切运行良好,但是一旦我添加了函数,我就遇到了麻烦。我不断收到错误提示:

c:55:6: 错误:参数“b”与原型(prototype)不匹配c:3:6: 错误:原型(prototype)声明

我试过使用我通过函数传递的值,但它似乎不起作用。我对数组还很陌生,所以我可能会遗漏一些明显的东西。任何帮助将不胜感激!

#include <stdio.h>

void value_calc(int, float);

int main(){

int barcode[100], quantity[100], i;
double price[100], value[100], value1;


printf("Grocery Store Inventory\n");
printf("=======================\n");

for(i=0;i<100;i++){

printf("Barcode : ");

scanf("%d", &barcode[i]);

if (barcode[i]==0){

break;

}

printf("Price : ");
scanf("%lf", &price[i]);

printf("Quantity : ");
scanf("%d", &quantity[i]);

value_calc(quantity[i],price[i]);

}


printf("\n Goods in Stock\n");
printf(" ==============\n\n");

printf("Barcode Price Quantity Value\n");

printf("-------------------------------------\n");

for(i=0;i<100 && barcode[i] !=0;i++){


printf("%d %.2lf %8d %.2lf\n", barcode[i], price[i], quantity[i]);

}

return 0;

}

void value_calc(a,b){

double value1;

value1 = a*b;


}

最佳答案

问题是您对 value_calc 的定义省略了参数类型:

void value_calc(int, float);

void value_calc(a,b) {
..
}

C 允许您省略参数类型,但默认情况下它们变为 int(在 GCC 和 Clang 上使用 -Wimplicit-int 启用警告)。现在您有一个包含 int, float 的声明和一个包含 int, int 的定义,它们不匹配。尝试:

void value_calc(int a, float b) {
..
}

关于c - 参数与 C 中的原型(prototype)不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33862217/

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