错误:无法忽略void值,因为它应该在C程序中

时间:2015-10-22 17:04:22

标签: c

当我尝试编译具有两个函数的程序时,我不断收到此错误:

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

我知道我不需要使用指针,但我想使用指针来获得学习经验并理解。在编译程序时是否有跳过结果?

2 个答案:

答案 0 :(得分:0)

它说明了一切。 addition_1正在返回void(即不返回任何内容)。但是这一行:

finalAnswer = addition_1(&num1, &num2);

将(not)返回的值赋给变量。

答案 1 :(得分:0)

您尝试将函数addition_1的返回值分配给finalAnswer,即使该函数根本不返回任何内容。您可以通过两种方式消除此错误:

  1. 删除finalAnswer的分配(及其定义)。你完全没有使用变量。
  2. 将函数的声明/定义更改为

    int addition_1(int *num1, int *num2)
    

    如果你想稍后处理这笔费用,请返回total