Каково намерение поставить возвращаемые значения в скобках в C / Objective-C? - PullRequest
4 голосов
/ 11 октября 2010

Я сталкивался с кодом, который заключает возвращаемое значение из метода / функции в скобки.

Что это делает?

Код, который я увидел, взял изображение, изменил его размера затем вернул его.

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

    return (image);
}

Ответы [ 4 ]

5 голосов
/ 11 октября 2010

По крайней мере, что касается C, это не имеет значения.Паренсы не нужны, но они не меняют смысла выражения возврата.Грамматика оператора возврата -

<i>return-statement</i>:
    <b>return</b> <i>expression<sub>opt</sub></i> <b>;</b>

, а одно из производных нетоксичного выражения - выражение в скобках или ( выражение ) .

4 голосов
/ 11 октября 2010

Ничего. Это совершенно бесполезно.

Переопределяет приоритет оператора, но ни один оператор не будет иметь более низкий приоритет, чем «return».

1 голос
/ 11 октября 2010

Короткий ответ прост: выбор стиля, например, использование "/ * comments * /" вместо "// comments"

0 голосов
/ 11 октября 2010

В вашем случае это эквивалентно вводу возврата без скобок. Обычно вы используете скобки для приведения типов или если вы хотите обрабатывать выражение как независимый блок.

Например:

// 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...