[英]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
,它是二(整數)數, a
和b
(所以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.