關於SO的大多數問題都指的是非無效的返回類型,但我們正在進行一場關於這個問題的火焰戰爭,並且想要了解社區的想法。返回類型爲void的函數末尾是否爲空白返回語句?
void DoSomething()
{
return; // Is this needed?
}
從this討論,它看起來像有非空返回類型的函數未定義行爲涉及的問題。 void返回類型是否具有相同的未定義行爲,還是僅在非void返回函數中?
我擔心的是,這隻會成爲一種可怕的編碼風格,而不是任何理由。但是,如果它對於void返回函數也是未定義的行爲,那麼我可以看到需要將它添加到編碼標準中。如果C vs C++的答案不同,這也可以。
§6.6.3 return語句
2無表達式的return語句可以在 函數只使用不帶空隙的 返回類型返回一個值,即,一個功能,聯合體(12.1)或析構體(12.4)。
§6.6.3/2
流動關閉的功能的端部是 相當於沒有值的返回; 這導致未定義的行爲在 一個值返回函數。
您使用該標準參考回答了您自己的問題:) – Lundin 2012-02-16 18:32:21