2016-12-02 70 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)。

相关问题