- Zozz blogja
- A hozzászóláshoz be kell jelentkezni
- 1546 megtekintés
Hozzászólások
Zseniális! Kellett vagy 5mp mire leesett. :)
- A hozzászóláshoz be kell jelentkezni
Nagyon jó!
Ez ugye a ((count--) > 0) csak furcsán írva?
- A hozzászóláshoz be kell jelentkezni
Itt is. :)
- A hozzászóláshoz be kell jelentkezni
C-ről bármit el tudok képzelni, így nekem 1 nap volt :) Leginkább mert az operátorok körüli szóközök elrendezésére kényes vagyok, ha valaki rosszul használja, akkor az ő kódját lassabban értem meg... A kód ugyanis az embereknek szól, nem a fordítónak.
- A hozzászóláshoz be kell jelentkezni
Nagyon jó :)
- A hozzászóláshoz be kell jelentkezni
hat ez zsenialis :D
-
Slackware current / OSX Snow Leopard
- A hozzászóláshoz be kell jelentkezni
mókás, de remélem nem fogok vele túl gyakran találkozni :)
- A hozzászóláshoz be kell jelentkezni
Na jo, ha itt ennyi ujszulott van, akkor bedobom ezt is:
a^=b^=a^=b;
mit csinal?
--
hungarian up portal - sj
- A hozzászóláshoz be kell jelentkezni
Kicseréli a két értéket :)
- A hozzászóláshoz be kell jelentkezni
Csakhogy ez nem szep szintaktikus szemcukorka, mig a goes toward 0 operator az. Ezert tetszik jobban, ponthogy latszik rola, mit csinal, kiveve akkor, ha count negativ, mert akkor nem noveli count erteket a 0 fele :)
- A hozzászóláshoz be kell jelentkezni
Ha az (optimalizáló) fordítód éppen neked tetsző (de a nyelv által nem definiált) sorrendben hajtja végre a mellékhatásokat.
- A hozzászóláshoz be kell jelentkezni
igen am, de ez nem valid c kod
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Hát lehet, hogy nem valid (bár nem értem miért nem), de pcc/gcc/clang mind elfogadja -Wall opcióval együtt is.
- A hozzászóláshoz be kell jelentkezni
rakd be a -Wsequence-point flaget is es meglatod ;)
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
miért?
- A hozzászóláshoz be kell jelentkezni
mert C-ben nem szigoruan jobbrol balra, vagy balrol jobbra ertekelodik ki minden, hanem ugynevezett "sequence point"-onkent
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Attól még valid a kód, csak nem biztos, hogy jól fut le. És ha bezárójelezed?
Szerk: nem kell zárójelezni se, mert a szabvány szerint úgy értékeli ki a fordító, hogy a^=(b^=(a^=b)); Forrás: http://www.hit.bme.hu/~szandi/prog1/stdc.pdf
--
Don't be an Ubuntard!
- A hozzászóláshoz be kell jelentkezni
amit linkeltel az nem a szabvany ;)
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
ezt tudom. szerintem ennek a kifejezésnek nem lehet más a végeredménye, ezt mindig ugyan abban a sorrendben fogja kiértékelni, hisz megmondod neki, hogy mit csináljon. nem az ilyen jellegű kifejezésekkel van a gond C-ben, hanem az olyanokkal, ahol "mellékhatásokra" számítasz.
szép is lenne, ha ez nem rendesen sorrendben értékelődne ki....
- A hozzászóláshoz be kell jelentkezni
de nincs olyan itt, hogy sorrend! c#-ban van, c-ben nincs.
foo(i++, i++, i++); itt mi lesz a sorrend?
a[i] = i++; es itt? ;)
szerintem barmilyen c kod aminek az eredmenye undefined, az nem valid
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
ezek nyílvánvalóan undefined dolgok, de a kiindulásban nem ilyen jellegű kifejezés van, ezt láthatod te is.
- A hozzászóláshoz be kell jelentkezni
akkor gcc miert ir ra warningot?
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Azt nem tudom miért warningol, de a fentebb emlegetett -Wsequence-point opcióval se mondott semmi többet se gcc-4.2.1, se 4.4.6. Ellenben szerintem ez simán egy többszörös értékadás, és jobbról balra *kell* kiértékelni (mint egy a=b=c=1 -et).
- A hozzászóláshoz be kell jelentkezni
*sigh*
http://publications.gbdirect.co.uk/c_book/chapter8/sequence_points.html
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
de te nem ugyan arról beszélsz.
- A hozzászóláshoz be kell jelentkezni