Pretypovani ukazatele struktury na bajt
Miroslav Mraz
mrazik na volny.cz
Neděle Únor 23 17:52:07 CET 2020
#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
>
Další informace o konferenci Hw-list