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