A C nyelv egy fos. Hiába generál gyors és kicsi kódot, hiába fordul le szinte bármire, akkor is egy fos.printf("cnt:%d\n", cnt);
for (i = 0; i < cnt; ++i);
{
printf("%d\n", i);
}
printf("%s", "kecske"); root@Csabi:~# gcc main.c
root@Csabi:~# a.out
cnt:3
3
kecske A ciklusváltozó 0-ról indul és 3-ig megy. Azaz ez kéne, hogy történjen. Ehelyett azonnal 3. Ki találja ki, mi az oka ennek? Az, hogy véletlenül pontosvesszőt írtam a for után. Nem az a baj, hogy azt megengedi, hogy üres legyen a ciklus, hanem az, hogy engedi a típus nélküli blokkot!printf("cnt:%d\n", cnt);
{
printf("%d\n", i);
}
printf("%s", "kecske"); root@Csabi:~# gcc main.c
root@Csabi:~# a.out
cnt:3
0
kecske Ilyenkor be kéne reklamálnia, hogy héló, a blokk előtt ott kéne, hogy legyen, hogy ez most milyen blokk, függvény, struktúra, ciklus, mittudomén! Ehelyett simán lefordítja nekem, nekem meg folyik az agyvizem, hogy ez már paranemnormális tevékenység, beköltözött a gépembe egy ufóklubb, vagy vízér van a plafonban, mijezmárbazmeg... Ennek semmi értelme nincsen, hogy lehessen ilyet, mégis lehet. És szopik az ember vele. Fúj. |