[OT]C CO tim chtel basnik rici?

Admin HWnews hwnews na cncnet.info
Středa Prosinec 31 11:53:26 CET 2014


Ja se nechci hadat, ale rozdily tam proste jsou. Pascal (Basic netusim 
ten jsem opustil s DOSem 6.22 a programem s gorilou borici panelaky :-) 
je velmi striktne definovan nic takoveho tam proste nenapisete, nemuzete 
pretezovat operatory (treba Free Pascal uz je ma :-() - v podstate pokud 
to projde kompilerem a napise to ze ok tak je temer jistota, ze to bude 
delat to co ma - vsechno je dane uz v okamziku zapisu. Muzete psat 
neobratne, blbe volit algoritmy, ale nebudete resit co ten napsanej kod 
znamena.

Ja C nikomu neberu, ale proste nechapu argmentaci, ze to je rychle na 
psani a ze se tim neco usetri. Nikdy jsem nechvatal tolik abych nemohl 
napsat begin a end.

RV

Dne 31.12.2014 v 11:34 Marek Sembol napsal(a):
> Ale no tak, jde prece psat krasne prehledne i v ASM nabo BASICu.
> A stejne tak jde psat prasacky i v Pascalu, Jave ci cemkoliv dalsim.
>
> A ohledne 0 vs NULL - kazda sranda neco stoji. Treba 1 bit informace a
> par instrukci pri vyhodnocovani...
> Marek
>
> 2014-12-31 11:17 GMT+01:00 Admin HWnews <hwnews na cncnet.info
> <mailto:hwnews na cncnet.info>>:
>
>     Chce se mi zvracet...to je teda neskutecnej hnus. Opet se
>     presvedcuju, ze cokoli co zavani *C* syntaxi mi nesmi na oci. 22 let
>     jsem bez toho vydrzel a doufam, ze jeste jednou tak dlouho vydrzim.
>
>     Opravdu zlatej Pascal - nechapu nekoho, ze argumentuje tim, ze je
>     uzvanenej a rozvlacnej - C je sice usporne, ale pak si to clovej
>     vynahradi v komentovani kodu a v diskuzich na netu co vlastne by to
>     mohlo delat.
>
>     Nastesti i DB se zatim drzi toho, ze polozka 0 neni to same co null.
>
>     RV
>
>     Dne 31.12.2014 v 10:24 Jan Waclawek napsal(a):
>
>                 NULL je ve vět±inou (ne-li vµdy) definován jako 0 nebo
>                 (void*)0 takµe
>                 vět±ina programátorů bere NULL a 0 jako synonymum
>
>
>             to jako kde jste k tomuhle prisel? obecne to rozhodne
>             neplati - pak je
>             jaksi zbytecne mit 0 a null
>
>
>
>         To si mylis so stavom zo skutocnych programovacich jazykov,
>         pravdepodobne z
>         Pascalu. Tam ano, nil je specialna konstanta netypovaneho smernika
>         (pointer) u ktoreho je zarucene, ze sa nerovna ziadnemu inemu
>         smerniku; to
>         je vsetko (ISO/IEC 7185:1990 6.4.4). Vobec, u skutocnych
>         programovacich
>         jazykov je zbytocne spekulovat o *hodnote* smernika, to je interna
>         zalezitost prekladaca a programatora do toho nic nie je.
>
>         C naproti tomu vznikol ad-hoc bastlenim, a bol len dodatocne
>         kodifikovany,
>         takze hodnoty pointrov su tradicne pokladane priamo za adresy
>         ukazovanych
>         objektov; dalej 0 a NULL su v C tradicne ekvivalentne (pozor,
>         NULL nie
>         null, lebo C je case sensitive). Tipujem, ze u PDP-11 je na adrese 0
>         nejaky reset vektor alebo nieco podobne, na ktore nikdy
>         nenastane problem
>         ukazovat, takze to bolo pre Thomsona a Ritchieho dost dobre ako
>         unikatny
>         pointer co sa nerovna ziadnemu inemu; no a uz to tak zostalo,
>         bez ohladu
>         na problemy ktore to prinasa. Neskorsie "normovanie" z toho
>         potom robi
>         takuto splet:
>
>
>         C99, 6.3.2.3#3
>         An integer constant expression with the value 0, or such an
>         expression cast
>         to type
>         void *, is called a null pointer constant.(55)
>
>         (55)  The macro NULL is defined in <stddef.h> (and other
>         headers) as a null
>         pointer constant; see 7.17.
>
>         If a null pointer constant is converted to a
>         pointer type, the resulting pointer, called a null pointer, is
>         guaranteed
>         to compare unequal
>         to a pointer to any object or function.
>
>         #4
>         Conversion of a null pointer to another pointer type yields a
>         null pointer
>         of that type.
>         Any two null pointers shall compare equal.
>
>
>         To pouzitie v if () je komplikovanejsie: C99, 6.8.4.1#2:
>         In both forms [if() aj if()else], the first substatement is
>         executed if the
>         expression compares unequal to 0.
>
>         pre "compares unequal" musime siahnut po 6.5.9 Equality operators:
>         #5
>         Otherwise, at least one operand is a pointer. If one operand is
>         a pointer
>         and the other is a
>         null pointer constant, the null pointer constant is converted to
>         the type
>         of the pointer.
>
>
>         Takze ta 0 pre implicitne porovnanie z 6.8.4.1#2 je podla prvej
>         casti prvej
>         vety z 6.3.2.3#3 "null pointer constant", ktora je potom podla
>         6.5.9#5
>         implicitne pretypovana na pointer takeho typu ako je "operand" v
>         tom if(),
>         tym z implicitnej nuly podla 6.3.2.3#4 vznikne null pointer, pre
>         ktory je
>         podla druhej vety z 6.3.2.3#3 zarucene, ze sa nerovna ziadnemu
>         skutocnemu
>         pointru; sucasne podla 6.3.2.3#4 je zarucene, ze sa bude rovnat
>         akemukolvek nulovemu pointru, ktorym je aj makro NULL podla footnotu
>         (55)...
>
>         wek
>
>
>
>
>
>
>
>         _________________________________________________
>         HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>         Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>         http://list.hw.cz/mailman/__listinfo/hw-list
>         <http://list.hw.cz/mailman/listinfo/hw-list>
>
>     _________________________________________________
>     HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>     Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     http://list.hw.cz/mailman/__listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


Daląí informace o konferenci Hw-list