Заявление о возврате в MSDN - PullRequest
       35

Заявление о возврате в MSDN

2 голосов
/ 02 декабря 2011

Сегодня, когда я читал MSDN, я обнаружил следующие коды:

void draw( int I, long L );
long sq( int s );
int main()
{
long y;
int x;

y = sq( x );
draw( x, y );
return();
}

long sq( int s )
{
return( s * s );
}

void draw( int I, long L )
{
/* Statements defining the draw function here */
return;
}

Конечно, это не сработало, поэтому я изменяю возврат

();

в основной функции для

return 0;

Работает с осторожностью.У меня есть две проблемы с этим кодом:

1.Почему Microsoft использует return (); Это просто ошибка? Или другие причины?

2.Что возвращает;в функции рисования означает? Я думаю, что это не является необходимым, почему это происходит в функции?

Ответы [ 3 ]

4 голосов
/ 02 декабря 2011
  • 1 Да, я считаю, что это ошибка.
  • 2 В пустом методе возврата пропуск оператора return эквивалентен возврату в качестве последней строки метода.
2 голосов
/ 02 декабря 2011

Я согласен с другими авторами, даже если в этом случае возвращение в функции рисования не требуется, так как в конце функции есть неявное выражение возврата, оно допустимо и действительно может использоваться для выхода функция на ранней стадии, чтобы избежать дополнительного кода в функции, например

void DoSomeWork(bool someCondition)
{
  if(somecondition == true)
  {
    return;
  }
// run lots of code 
}
2 голосов
/ 02 декабря 2011

Очевидно, я не могу сказать, что имел в виду автор кода, но для первого вопроса я бы подумал, что это ошибка, и что автор хотел написать return(0);.

По второму вопросу вы считаете правильным. return не нужен, и снова невозможно ответить, почему автор поставил его там.

...