[elektro] C - memset

uprogc . uprogc at gmail.com
Wed Feb 3 17:28:22 CET 2016


Nincs printf-em, stm32-on vagyok.

A kod tartalmilag ugyanaz, mint amit az iment itt Szilard irt, csak nem
hasznaltam attribute packed-et.

/* A struktúrám típusa: */
typedef struct{
   uint32_t tag32;
   uint8_t tag8_1;
   uint8_t tag8_2;
} __attribute__((packed)) TEST_t;

/* A kód: */
int main(void){
TEST_t test;
uint8_t len;

   len = sizeof(TEST_t);        /* 6 byte lett a pakolás után */

   memset(&test, 0, 6);

   return 0;
}

2016-02-03 16:59 GMT+02:00 Kiss Gabor <kissg at ssg.ki.iif.hu>:

> On 02/03/2016 01:26 PM, uprogc . wrote:
> > Sziasztok,
> >
> > ( STM32, gcc )
> >
> > Van egy strukturam, amelyben van egy 32 bites es ket 8 bites valtozo.
> > Ennek a merete 6 byte.
>
> Vagy nem.
> Az alignmenttõl függ.
>
> > Ha memset() eseten a struktura meretet sizeof(tipus)-al megadom, akkor
> > rendben van, ha viszont konstans 6 ertekkel adom meg a meretet, akkor az
> > elso byteot nem allitja be a memset :)
> >
> > Ez mi ?
>
> Írd csak ide az utasítást, meg a típus definícióját, kérlek!
> Meg esetleg ennek az outputját:
>
> printf("size=%d", sizeof(struct valami));
>
> kissg
>
> -----------------------------------------
>           elektro[-flame|-etc]


More information about the Elektro mailing list