簡體   English   中英

錯誤:沒有忽略空值,因為它應該在 C 編程中

[英]Error: Void value not ignored as it ought to be in C programming

我正在編寫一個具有兩個功能的 C 程序。 一個函數是通常的 main 函數,另一個是指針 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;
}

正如您在上一個問題中提到的, 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);

這個:

void function_1(int *num1, int *num2)

什么都不返回。 void是一種“無”類型,在表達式中,表示忽略結果,作為返回類型,表示不返回任何內容。 分配void函數的(不存在的)返回值沒有意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM