2016-02-15 2 views
0

Скажет, у меня есть пустая возвращающая функция,Должен ли я писать return; в функции возврата пустоты?

void foo(void) 
{ 
    // code 
} 

или

void foo(void) 
{ 
    // code 
    return; 
} 

Интересно, какой из них лучше на практике? Есть ли какие-либо потенциальные проблемы в первом?

+3

Оба в порядке. Лучше следовать стандартам кодирования вашей группы. Если у вас их нет, создайте их. – chux

+2

Его не нужно. Две упомянутые вами функции эквивалентны. –

ответ

1

Оба случая полностью эквивалентны.

Во втором примере return; полностью избыточен, и я не вижу причин использовать его.

1

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

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

для примера рассмотрим следующий случай:

void foo(){ 
    if (a){ 
     //do something 
    } else { 
     //do something else 
    } 
} 

функциональные пути разветвленные и предположим, что вы хотите, чтобы уменьшить отступ кода путем удаления другого блока. Тогда вы могли бы написать код, приведенным выше с ранним возвращением в следующем:

void foo(){ 
    if (a){ 
     //do something 
     return; 
    } 
    //do something else  
} 

В таком случае, вы можете рассмотреть вопрос использования скорейшего возвращения в пустой функции, возвращающий.

Смежные вопросы