[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