c přižezení adresy do ukazatele

Josef Štengl ok1ced na nagano.cz
Čtvrtek Duben 10 11:34:26 CEST 2014


No, většina kompilátorů na to má funkci nazývanou buildin (__builtin_bswap32()) či  intrinsics (__rev()). Pak stačí mít 
malou knihovničku, která vybere správnou funkci pro kompilátor, který zrovna používáte a generický kód, když používáte 
ještě neprozkoumaný. A vypadá to měně trapně, než že člověk napíše osm řádků a je z toho jedna asm instrukce :-).

  A jde to použít i pro SIL :-D. Ale tam je to taky jedno (dokud není půšvich), protože certifikační autorita to stehně nečte.


Dne 10.4.2014 11:02, Jan Waclawek napsal(a):
> Prenositelna varianta je "manualne" zlozit zdrojove byty, previest
> operaciu, a potom ich "manualne" rozlozit, nieco ako
>
> #include <stdint.h>
>
> typedef struct {
>    uint8_t a;
>    uint8_t b;
> } bla_t;
>
> bla_t t;
>
> {
>    uint16_t tmp;
>
>    tmp = t.a + 256 * t.b;
>    tmp = (tmp << 1) | (tmp >> (16 - 1));
>    t.a = (tmp >> 0) & 0xFF;
>    t.b = (tmp >> 8) & 0xFF;
> }
>
> Toto pre pravoverneho ceckara vyzera trapne (a ano, da sa to napisat do
> jedneho riadku :-) ), ale slusny prekladac to neprelozi horsie ako ked sa
> pouzije type punning.
>
> Aby nedoslo k omylu, aj ja bezne pouzivam type punning v oboch podobach, aj
> ked sa mi viac paci ten union... (dalsi namet pre psychologicku analyzu
> mojho vztahu k C...) ;-)
>
> wek
>
>
> ----- Original Message ---------------
>>> Dne 10.4.2014 8:31, Miroslav Draxal napsal(a):
>>>>
>>>> Ale né, tady je to zámìr. Mam dva byty v (v unionu struktura dvou
>>>> charu, vím ¾e pøekladaè si je mù¾e hodit kam chce, ale HiTech ty dva
>>>> byty dr¾í dùslednì vedle sebe) potøebuji k nim pøistupovat jako
>>>> k charum pro úsporu místa a hlavnì rychlosti. Pak to celé potøebuji
>>>> zarotovat. Tak¾e proto ten na int a jednodu¹e s tím zarotovat a pak
>>>> zase pøístup pouze k charùm. Ten výsledný kód potom vypadá skoro
>>>> pøesnì tak, jak bych to udìlal v asm.
>>>>
>
> _______________________________________________
> 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