爲什麼編譯器不把return_nothing(return_nothing())
當作return_nothing(); return_nothing();
,因爲return_nothing()
的返回類型是void
?爲什麼不能通過void來使用不帶參數的函數?
void return_nothing() {}
int main()
{
return_nothing(return_nothing()); // compile error
}
直播:因爲你是C++中的C++語言的編程和C++中的空隙返回函數不能有使用,你的編譯器(至少近似)所描述的Wanbox
'void'不是一個值,而是一個類型。您也不能將'int'作爲參數。而'void'類型沒有可能的值。 – deviantfan
我認爲它會把它當作'return_nothing(); return_nothing();'如果有的話,但你不能使用void返回值,你不能傳入一個void參數列表。我認爲這是「WTF你想要做什麼?」的理由。錯誤信息。 – user4581301
'return_nothing'不需要任何參數,並且什麼都不返回,但它仍然是一些東西。因此,將某些參數作爲參數傳遞給不需要任何參數的東西就是編譯器錯誤。 – smac89