在C / Objective-C中将返回值放在括号中的意图是什么?

我遇到了一些代码,它们围绕括号中方法/函数的返回值。

那是做什么的?

我看到的代码拍了一张图片,调整了大小然后又返回了。

- (UIImage *)resizeImage:(UIImage *)image { // // some fascinating, but irrelevant, resizing code here // return (image); } 

至少就C来说,它没有任何区别。 parens不是必需的,但它们不会改变return语句的含义。 return语句的语法是

 return语句返回 表达式opt ;

表达式 non-terminal的产生之一是括号表达式 表达式

没有。 这完全没用。

它会覆盖运算符优先级,但没有运算符的优先级低于“return”。

简短的回答就是它是一种风格选择,比如使用“/ * comments * /”代替“// comments”

在您的情况下,它相当于没有括号键入返回。 通常,您可以使用括号进行类型转换,或者如果要将表达式视为独立块。

例如:

 // This is an untyped pointer to an instance of SomeClass void* ptr = instance; // In order to let the compiler know that ptr is an instance of SomeClass // we cast it, and then we put the cast in parentheses to be able to access // a property on the result of the cast. return ((SomeClass *)ptr).someproperty;