[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