簡體   English   中英

Void與Int函數

[英]Void vs Int Functions

void和int函數之間有什么不同? 我什么時候使用哪個? 只打印出消息或變量值時會無效嗎? 像cout << value;

或者只是文字?

當你在其中實際進行計算時,是否使用了int?

當您不需要從函數向函數的調用者返回任何內容時,將使用void

例如。

void no_return_fn()
{
    cout<< "This function will not return anything" << endl;
    return; // returns nothing or void

}

當您必須將函數的整數值返回給函數的調用者時,使用int

例如。

int return_sum_of_integers_fn(int a, int b)
{
    cout<< "This function returns an integer" << endl;
    return (a + b); // returns an integer
}

你想讓函數返回任何東西嗎? 如果沒有,那么它應該是void 如果你想讓它返回一個int ,那么它應該是int 如果你想讓它返回別的東西,那么它應該有一些其他的返回類型。

有些人更喜歡使用返回int的函數來指示一些錯誤或特殊情況。 考慮以下代碼:

int print (int* ptr)
{
    if (ptr == NULL)
    {
        return -1; // Error code.
    }

    std::cout << *ptr;

    return 1; // Success code.
}

當你使用void時,這意味着你不希望從函數返回任何東西。 而int返回可能是函數計算的結果,或者指示返回時的狀態,例如錯誤號或其他可以告訴您函數執行時發生了什么的事情。

就像你上面聽到的那樣, void不會返回值,所以當你不需要這樣做時你就可以使用它。 例如,您可以使用'void'來打印文本,但主要用於修改參數(更改您已有的內容),因此您無需返回值。

假設你要找到int c ,它是二(整數)數, ab (所以a + b = c)。 您可以編寫一個函數來添加這些數字並將其值分配給c

int c;
int sum (int a, int b)
{
    return a+b;     
}       

c = sum(a,b);

使用void ,你只需要修改c ,所以不是編寫c = function(arguments) ,而是使用修改c function(c) ,例如:

int c;
void sum(int a, int b, int c)
    {
        c = a+b;
    }

sum(a,b,c);

在最后一行之后,你擁有的' c '等於' a '和' b '的總和:-)

實際上,如果您正在為托管系統編譯代碼,例如PC,Linux,Mac,Android,則必須這樣做。 然后main必須返回int。 如果您正在為獨立系統編譯代碼,例如嵌入式微控制器,或者如果您正在制作操作系統,那么main的返回類型可以是任何東西。

雖然如果使用int或void但不符合標准C,則不會出現錯誤。

另一個區別是void函數不需要在其中有一個返回:這2個代碼片段是有效的,不會生成編譯器警告:Snippet 1

void msg1()
{
    cout<< "This is a message." << endl;
    return; // returns nothing or void

}

片段2

void msg2()
{
    cout<< "This is a message." << endl;
}

兩者都具有相同的行為,並且不顯示任何警告。

如果聲明一個非void的函數並且你沒有返回一個值,你的編譯器可能會顯示一個警告,例如“警告:函數返回非空虛時沒有返回語句”。

如果顯示此錯誤,則取決於發送給編譯器的修飾符參數。

此代碼非常類似於顯示編譯器警告,因為沒有返回:

int test(){
    printf("test");
}

返回void表示沒有返回任何內容。

int返回可能表示也可能不表示已執行計算(例如,可能只是返回碼)。

暫無
暫無

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

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