[elektro] C - memset

hg12345 hg12345 at freemail.hu
Wed Feb 3 18:46:24 CET 2016


mindig ahooz kell írni amit szeretnél tömrebben pakolni, jobban jársz ha a változó mögé írod.

"uprogc ." <uprogc at gmail.com> írta:
>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]
>-----------------------------------------
>          elektro[-flame|-etc]



More information about the Elektro mailing list