bitfield v avr-gcc

Miroslav Sinko sinkomiro@rocketmail.com
Středa Červen 18 22:45:40 CEST 2008


>> Dospeli sme k tomu, ze v C to nejde,

>K tomu si dosiel Ty.

Pri vsetkej ucte, uz to prestava mat zmysel. Pointre v C su adresy na objekty, kde najmensi je byte. Poinetry na vacsie/ine typy hovoria prekladacu, ako pouzivat pointerovu aritmetiku. Na mensie typy poinetry nie su. Ale to sa uz opakujem. Ak som teda ja dospel k chybnemu zaveru, nemal by byt problem mi to vyvratit sporom, ze. Na nete je plno info, nech sa paci. Ja som sa v norme docital toto:

106) The unary & (address-of) operator cannot be applied to a bit-field object; thus, there are no pointers to or arrays of bit-field objects.

>C je taky bastard nepodareny, ad-hoc a zle zadefinovany, ktory sa len 
>vdaka takymto hackom moze vyvijat - vid prave sizeof a jeho magicke 
>vlastnosti. 

Tvoju averziu k C pozname, davas ju najavo pri najmensej zamienke. To ale nic nemeni na definicii jazyka.

>Samotny standard sa nijako nebrani rozsireniam, akurat sa 
>clovek tym vzdava prenositelnosti, no ale prenositelnost u malych 
>jednocipov je aj tak len marketingovy kec.

Hlavne, ze mne vytykas neportabilitu (mimochodom plne portabilnej) konstrukcie.

>> tak som sa opytal aj na ine jazyky. Ciste pre inspiraciu, alebo 
>poucenie, ako sa to da - ak sa to vobec niekde da.  

>Samozrejme ze sa to da. Flag predsa nie je nic ine ako typ boolean, ktory 
>je hadam vo vsetkych vyssich jazykoch (a samozrejme mozes mat polia 
>bitov, mat ich v strukturach, mat na ne pointre atd.; nemozes ich volne 
>priradovat inym typom a naopak, mozes na nich robit len logicke operacie 
>takze sa neda pomylit, atd.) V Pascale mozes vytvorit ordinalny typ s 
>tolkymi prvkami kolko chces, a je vec prekladaca, ako to prelozi, nic 
>nebrani prekladacu optimalizujucemu pre jednocipy to prelozit s minimom 
>potrebnych bitov. Znova su k dispozicii pointre a kompletny aritmeticky 
>aparat.  Je pravda ze v Pascale nie je definovane priame priradenie 
>premennej ci bitu absolutnej adrese (ako ani napr. endianovost) ale to v 
>konecnom dosledku nie je ani v standardnom C a je to implementacne 
>zavisle (a casto ide o rozsirenia). Wirthov argument na tuto vec je 
>typicky sovinizmus z velkych pocitacov, a to ze strojovo zavisle veci 
>maju byt izolovane ovladacmi a operacnym systemom, a tieto nemaju byt 
>kvoli efektivite pisane vo vyssom jazyku (ale v asembleri).

Dik za info, detaily Pascalu nepoznam - preto som sa pytal na ine jazyky. 

>wek

miro







      



Další informace o konferenci Hw-list