[elektro] C - memset

Moravcsik Szilard levlista.mszilard at gmail.com
Thu Feb 4 10:03:13 CET 2016


Szia!

2016.02.03. 18:46 keltezéssel, hg12345 írta:
> mindig ahooz kell írni amit szeretnél tömrebben pakolni, jobban jársz ha a változó mögé írod.
>

Kösz, megjegyeztem (legalábbis remélem)! :)
Ez még a pascalos Packed Array-ból maradt az emlékeimben, azt hiszem. 
Mármint, hogy talán így kellene írni.

Üdv:
Szilárd

> "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]
>
> -----------------------------------------
>            elektro[-flame|-etc]
>


---
A levél vírus, és rosszindulatú kód mentes, mert az avast! Antivirus védelme ellenőrizte azt.
https://www.avast.com/antivirus



More information about the Elektro mailing list