2016-12-02 184 views
0

一個簡單的問題。我有一個功能int function(void)。以下語句是否相同:什麼是比較函數返回的正確方法

a. if(function() == somevalue) //somevalue is integer 
b. if((function()) == somevalue) 
c. if((ret = function()) == somevalue) //where ret is an integer 
+0

更具體。顯然,它們都有所不同。您使用哪一種取決於您的具體情況。 – Downvoter

+1

@Downvoter - 我猜a&b在功能上是完全相同的(並且可能會在編譯期間創建完全相同的代碼) – KevinDTimm

+3

@KevinDTimm我指的是詞彙差異,但是,我同意。原則上,OP應該縮小他/她真正想要的範圍,因爲「相同」是一個相當廣泛的術語。 – Downvoter

回答

3

就比較返回值而言,它們都是功能上等效的。 (a)和(b)是等價的,(c)如果您稍後需要,您可以從function(在ret中)保存返回值。除非您稍後需要將function()作爲其他用途的返回值,否則我建議使用(a)。

相關問題