我正在编写一个有两个函数的 C 程序。一个函数是通常的主函数,另一个是指针void函数。当我尝试在基于 Linux 的系统中编译我的程序时,出现以下错误:
host1@matrix:~/cprog/practice> gcc -o function1 function1.c
prog1.c: In function ‘main’:
prog1.c:16:14: error: void value not ignored as it ought to be
这是我的代码:
#include <stdio.h>
void function_1(int *num1, int *num2);
int main(void) {
int numerator;
int denominator;
int finalAnswer;
printf("Numerator: ");
scanf("%d", &numerator);
printf("Denominator: ");
scanf("%d", &denominator);
finalAnswer = function_1(&numerator, &denominator);
printf("%d / %d = %d \n", numerator,denominator,&finalAnswer);
return 0;
}
void function_1(int *num1, int *num2) {
int total;
total = *num1 / *num2;
return;
}
最佳答案
正如您的 previous question 中提到的,void
函数不返回任何内容,因此您不能将其返回值分配给任何内容。这就是您收到错误的原因。
如果您希望函数返回一个值,但返回类型为 void
,请按如下方式定义:
void function_1(int num1, int num2, int *total)
{
*total = num1 / num2;
}
并这样调用它:
function_1(numerator, denominator, &finalAnswer);
此外,您的最终 printf
应该是这样的:
printf("%d / %d = %d \n", numerator,denominator,finalAnswer);
关于c - 错误: Void value not ignored as it ought to be in C programming,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33262343/