Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Programovací jazyk Forth a zásobníkové procesory (9)

wake
wake (neregistrovaný)
13. 3. 2005 8:58 Nový

scanf

celé vlákno
scanf AFAIK nic nealokuje, promenne, do kterych se hodnoty ukladaji se predavaji pomoci pointeru v paramlistu
tisnik
tisnik (neregistrovaný)
13. 3. 2005 17:06 Nový

Re: scanf

celé vlákno
To ano, vysledne (zparsovane a prevedene) hodnoty se ulozi do pametovych oblasti predanych funkci scanf(). Ale kam se uklada retezec, ktery uzivatel zadal? Vite to? Ve Forthu (tom puvodnim, ktery "pod sebou" uz nic nema) je to do TIB, v C-cku na nejake tajemne misto s blize neurcenou kapacitou, ktere zavisi na prekladaci, OS atd.
wake
wake (neregistrovaný)
13. 3. 2005 21:45 Nový

Re: scanf

celé vlákno
hm... misto nebyva tajemne, ale implementacne zavisle ;) a vetsinou i presne dane, stejne jako jeho "blize neurcena" kapacita, oboje zavisi na tom, na jaky konec ceho je pripojen standardni vstup (a ze to nemusi byt jenom klavesnice nemusim vysvetlovat, ze... ;) a to ze to neni ve specifikaci standartni knihovny umoznuje napsat scanf a nestarat se o ten druhy konec ;) (ale mezi nami - scanf je paskvil, ktery mezi slusnymi programatory nema co delat - "...pointer to buffer which must be bug enough to hold scanned data...") overflow HEIL !! ;););)
Pavel Tišnovský aura:98
14. 3. 2005 8:28 Nový

Re: scanf

celé vlákno
Implementacne zavisle nebo tajemne - nekdy to vyjde nastejno, protoze nevite, kde Vas program pobezi :-).

Ja jsem se napriklad nestacil divit, kdyz jsem zjistil, ze na nekterych procesorech DSP je pri mallocu zadana hodnota chapana jako pocet charu a ne jako pocet bytu. Ze je to stejne? Nikoli, to DSPcko neumelo vubec pracovat s byty, proto tam platilo, ze char jsou dva byty. A vy nemate sanci to rozumnym zpusobem programove zjistit, protoze samozrejme sizeof(char) tam vraci jednicku (coz je IMHO spatne).

Kdyz uz se teda bavime o prenositelnosti, ve Forthu je to docela tragedie, prekladace, ktere jsou ANS-Forth kompatibilni aby clovek pohledal :-)))

Scanf() je opravdu dost nebezpecna funkce, snad jeste vic nez gets() [gets() totiz zadny rozumny programator ve svem programu nemuze pouzit].
wake
wake (neregistrovaný)
14. 3. 2005 18:19 Nový

Re: scanf

celé vlákno
...protoze samozrejme sizeof(char) tam vraci jednicku (coz je IMHO spatne). - snad mi nebudete argumentovat chybou prekladace ? ;)
wake
wake (neregistrovaný)
14. 3. 2005 18:23 Nový

Re: scanf

celé vlákno
btw. no flame - forth je dobry na neco (napr. intelektualni zabavu... nebo psani OS do mobilu) a C je dobre na neco (zpravidla) uplne jineho. (napr. intelektualni zabavu... nebo psani OS do mobilu). ;);)
tisnik
tisnik (neregistrovaný)
15. 3. 2005 18:19 Nový

Re: scanf

celé vlákno
Ano rekl bych to s nadsazkou takhle: C-cko me zivi a Forth bavi :-)))
wake
wake (neregistrovaný)
16. 3. 2005 8:29 Nový

Re: scanf

celé vlákno
ehm... znate tohle ? IMHO je to pekny kousek zelizka, a jedine, co brani zalinuxovani je absence telefonu, ktery je ve WINCE verzi implementovan na DSC (Digital Signal Coprocessor), nebot familiar pro danou platformu naaaadherne beha. DSP... forth... opensource... ? ;) ;)
Zasílat nově přidané příspěvky e-mailem