// program BLEK.
// this program is freeware
while (true) {
if ($temaDiskuze=="programovani")
BeNormalHuman();
else
echo "Jsem BLEK. a mam poruchu osobnosti.";
}
gcc to i občas dělá, při optimalizaci koncových volání na skoky
To by ma celkom zaujimalo, neni mi moc jasne co je "koncove volanie". Nejaky priklad?
BTW som narazil na to, ze gcc vymeni printf za puts a neni mi moc jasne jak to robi (nejaka specialita tykajuca sa printf? makrom to neni). Obycajny printf("haha\n"); v main sa prelozi na volanie puts ak nema parametre az na ten formatovaci string:
0x00000000004004f4 <main+4>: mov $0x4005b8,%edi 0x00000000004004f9 <main+9>: callq 0x400430 <puts@plt>
Představuju si to takhle:
Mam funkce int a(int) a int b(int)
Při volání béčka gcc zrecykluje místo na parametr toho áčka pro tu dvojku, a pak narafičí zásobník tak, jakoby béčko volal přímo caller áčka.
int a(int)
{
... neco ...
return b(2);
}
Ad printf: tipnul bych si, že podle standardu C je tohle možný udělat. Zajímalo by mě, jestli přetransformuje i něco jako printf("%s")