A víš, kde to vytuhne? Třeba to není v okamžiku návratu z Kresli(), ale někde pozděj. Přidej si tam nějaký pomocný printf() nebo puts(), do Kresli() před return, potom až za volání Kresli(). Nebo to odkrokuj v debuggeru. Za tím ifem je ještě nějaký další kód? Takto, jak jsi to napsal, Kresli() skončí vždy, bez ohledu na výsledek toho ifu. Ani bys tam ten return nemusel psát.
void Kresli()
{
puts("zacatek funkce Kresli()\n");
nějaký kód
if (podmínka)
{
puts("konec funkce Kresli() - podminka splnena\n");
return;
}
nějaký další kód
puts("konec funkce Kresli()\n");
}
/* ------ */
/* odtud Kresli() volame */
puts("ted zavolam Kresli()\n");
Kresli();
puts("ted jsem zpet z Kresli()\n");
Pokud to bude psát:
ted zavolam Kresli()
zacatek funkce Kresli()
konec funkce Kresli() - podminka splnena
ted jsem zpet z Kresli()
return funguje správně a příčinu problému musíš hledat jinde.