[elektro] C - memset

potyo potyo.ada at gmail.com
Sat Feb 13 11:34:25 CET 2016


sizeof(struktura) kell mindig, mert ez adja meg azt, hogy a memóriában
mekkora területet foglal az adott struktúra. A változó neve a kezdőcím, és
onnan sizeof() mennyiségű bájtot foglal el az adott szerkezet. Ha eepromba
másolod, akkor az eepromban is lesznek nem használt bájtok ugyanúgy, hacsak
nem használod a struktúrán a már említett packed módosítót, vagy nem
rendezed át a struktúra elemeit kézzel úgy, hogy ne legyenek lyukak benne.

Mondjuk 8 biten nemnagyon voltak ilyen gondok :-))

2016. február 13. 11:24 uprogc . írta, <uprogc at gmail.com>:

> Mostmar tudom,...memsetnel sizeof-ot kell hasznalni. Erdekes ez. Mert pl ha
> at akarod a struktura tartalmat byteonkent (pl. i2c eepromba) masolni,
> akkor 50 byteot masolsz at vagy sizeof (struktura) byteot ?:)
>
> 2016-02-13 12:18 GMT+02:00 SZIGETI Szabolcs <szigiszabolcs at gmail.com>:
>
> > Hali!
> >
> > Ez így normális. Pl. A receiveDelay1előtt valószínűleg van kitöltés,
> hogy 4
> > bájt határra essen és 32 bites adatbusszal egy ciklus alatt lehessen
> > kezelni. Az is lehet, hogy a tagok sorrendjének átrenezésével (végén
> > legyenek a páratlan számú 8 bites adatok) változni fog a méret. Stb.
> >
> > Szabolcs
> > 2016.02.12. 14:21 ezt írta ("uprogc ." <uprogc at gmail.com>):
> >
> > Sziasztok.
> >
> > Ez bizony nem 50 byte sizeof-fal. GCC, PCn.
> >
> > typedef struct _FN_SaveToRTC_RAM_t {
> >      int8_t     link_addr_datarate;
> >      int8_t     link_addr_txpower;
> >      uint16_t     link_addr_chmask;
> >      uint8_t     link_addr_nbRep;
> >      int8_t        rx2Channel_DR ;
> >      uint32_t     rx2Channel_Freq ;
> >      int8_t     rx1DrOffset;
> >      uint32_t     receiveDelay1;
> >      uint32_t     receiveDelay2;
> >      uint32_t     chParam_freq;
> >      int8_t     chParam_drRange_value;
> >      uint32_t    w1_bandwidth;
> >      bool        w1_cont;
> >      uint32_t     w2_bandwidth;
> >      bool         w2_cont;
> >      uint32_t     DownLinkCounter;
> >      uint32_t   UpLinkCounter;
> >      uint32_t    RxWindow1Delay;
> >      uint32_t    RxWindow2Delay;
> > }FN_SaveToRTC_RAM_t;
> >
> > Udv.
> > Szabi
> > -----------------------------------------
> >           elektro[-flame|-etc]
> > -----------------------------------------
> >           elektro[-flame|-etc]
> >
> -----------------------------------------
>           elektro[-flame|-etc]


More information about the Elektro mailing list