[OT]C CO tim chtel basnik rici?

Marek Sembol hwm.land na gmail.com
Středa Prosinec 31 11:34:22 CET 2014


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>:

> 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
>> Hw-list na list.hw.cz
>> 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ąí část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20141231/11e39069/attachment.html>


Daląí informace o konferenci Hw-list