Программы обычно имеют несколько операторов возврата, что, однако, не означает, что код ниже первого возврата не будет выполнен.Обычно так устроена функция возврата кодов ошибок, если они есть.Небольшой пример выглядит следующим образом:
char * foo()
{
char *ptr;
ptr=malloc(256);
if(ptr==NULL)
return NULL; /// First return statement is here
strcpy(ptr,"Stackoverflow");
return ptr; // This is second return statement.
}
Также это не означает, что оба будут выполнены в одном вызове.Только один возврат выполнен.И функция возвращается к точке вызова.