Возврат из функции void [closed]

Какой более правильный способ возврата из функции:

void function() {
  // blah some code
}

ИЛИ

void function() {
  // blah some code
  return;
}

Обоснование второго способа:

  1. Он более четко выражает намерения разработчика.
  2. Это помогает обнаружить завершение функции во время предварительной компиляции:

Предположим, у вас есть такой сценарий - у вас есть набор функций, и вы должны добавить код в конце этих функций. Но по некоторым причинам вы не хотите / не можете изменять такое огромное количество функций. Что вы можете с этим поделать? Возврат & макрос вступает в игру, например:

#include<stdio.h>

#define MAX_LINES 1000
#define XCAT(a,b) a##b
#define CAT(a,b) XCAT(a,b)
#define return returns[__LINE__] = 1;\
        if (returns[__LINE__])\
           {printf("End of function on %d line.\n",__LINE__);}\
        int CAT(tmp,__LINE__); \
        if ((CAT(tmp,__LINE__)=returns[__LINE__], returns[__LINE__] = 0, CAT(tmp,__LINE__)))\
              return

static int returns[MAX_LINES];


void function1(void) {
    return;
}

void function2(void) {
    return;
}

int main()
{
    function1();
    function2();

    return 0;
}
59
задан Agnius Vasiliauskas 20 April 2017 в 05:58
поделиться