Это более правильный способ возврата из функции:
void function() {
// blah some code
}
ИЛИ
void function() {
// blah some code
return;
}
Обоснование для второго пути:
- Он более четко выражает намерения разработчиков.
- Это помогает обнаружить конец функции в момент компиляции:
Предположим, что у вас есть такой сценарий: у вас есть куча функций, и вы должны ввести некоторый код в конце этих функций. Но по некоторым причинам вы не хотите/не можете изменять такое огромное количество функций. Что вы можете сделать по этому поводу? Return
и macro
, например:
#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;
}