Pretypovani ukazatele struktury na bajt
Libor Konečný
support na mikrovlny.cz
Neděle Únor 23 19:01:32 CET 2020
Dekuji vyzkousim.
LK
Dne 23.2.2020 v 17:52 Miroslav Mraz napsal(a):
> #include <stdio.h>
> #include <stdint.h>
> void funkce (void * ptr) {
> uint8_t * from = (uint8_t *) ptr;
> *from++=0x01 ;
> *from++=0x02 ;
> *from++=0x03 ;
> *from++=0x04 ;
> *from++=0x05 ;
> *from =0x06 ;
> }
> struct hdr_s {
> uint32_t ident;
> uint16_t magic;
> } hdr;
> int main (void) {
> funkce (&hdr);
> printf("sizeof (hdr) = %ld\n", sizeof (hdr));
> printf("hdr.ident = %08X, hdr.magic = %04X\n", hdr.ident, hdr.magic);
> return 0;
> }
>
> 1. Používat standardní typy proměnných v <stdint.h>.
> 2. Řadit prvky struktury od největšího k nejmenšímu aby nevznikly díry.
> Strukturu je dobré pojmenovat. Výpis je pak :
> sizeof (hdr) = 8
> hdr.ident = 04030201, hdr.magic = 0605
>
> Mrazík
>
> Dne 23. 02. 20 v 17:40 Libor Konečný napsal(a):
>> Tak sizeof je 8
>> a zajimala by me ta spravna konstrukce, je tajna nebo muzete prozradit ?
>>
>>
>> LK
>>
> _______________________________________________
> 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