当我尝试编译具有两个函数的程序时,我不断收到此错误:
exer1.c: In function ‘main’:
exer1.c:15:14: error: void value not ignored as it ought to be
以下是代码:
#include <stdio.h>
void addition_1(int *num1, int *num2);
int main(void) {
int num1;
int num2;
int finalAnswer;
printf("number one: ");
scanf("%d", &num1);
printf("number two: ");
scanf("%d", &num2);
finalAnswer = addition_1(&num1, &num2);
return 0;
}
void addition_1(int *num1, int *num2) {
int total;
total = *num1 + *num2;
print("%d + %d = %d", *num1, *num2,total);
}
我知道我不需要使用指针,但我想使用指针来获得学习经验并理解。在编译程序时是否有跳过结果?
答案 0 :(得分:0)
它说明了一切。 addition_1
正在返回void
(即不返回任何内容)。但是这一行:
finalAnswer = addition_1(&num1, &num2);
将(not)返回的值赋给变量。
答案 1 :(得分:0)
您尝试将函数addition_1
的返回值分配给finalAnswer
,即使该函数根本不返回任何内容。您可以通过两种方式消除此错误:
finalAnswer
的分配(及其定义)。你完全没有使用变量。将函数的声明/定义更改为
int addition_1(int *num1, int *num2)
如果你想稍后处理这笔费用,请返回total
。