Rychla otazka na C -> kviz

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Úterý Leden 24 16:28:30 CET 2017


No, pomocnou promennou jsem zrovna moc zavadet nechtel.

Takto to neni koser?
buf = ((uint8_t *)buf) + n;
?
Ale libila by se mi jeste vic konstrukce s += a tam si nejsem jistej, 
jak to napsat.
(uint8_t *)buf += n;
logicky prekladac nesezere. Jde to nejak?

Dne 24.01.2017 v 15:34 Tomáš Hamouz napsal(a):
> Přetypovat na uint8_t* a pak už platí normální aritmetika.
>
> function xx(void8 param)
> {
>      uint8_t*   byte_ptr = (uint8_t*)param;
>
>      // dal uz pracuju s byte_ptr
> }
>
> Tomáš
>
>
>> Kdyz uz jsme u toho, dovolim si vyhlasit soutez, jak nejlepe to
>> predelat. void* jako parametr funkce je samozrejme zadouci, abych ji
>> mohl volat na cokoli.
>> Je to odesilani binarnich dat po kouscich pres buffer a DMA
>> void DbgSendBin (void *buf, int len)
>> {
>>       while (len != 0)
>>       {
>>           DbgFlushOs();
>>           EnterCritical();
>>           int n = TXBUFLENGTH - posWTx;
>>           if (posRTx == 0) n--;
>>           if (n != 0)
>>           {
>>               if (n > len) n = len;
>>               memcpy ((void *)(bufTx+posWTx), buf, n);
>>               posWTx += n;
>>               if (posWTx >= TXBUFLENGTH) posWTx = 0;
>>               DbgStartTx();
>>               buf += n;        //!!!!!  tady je FUJ ale funguje to
>>               len -= n;
>>           }
>>           ExitCritical();
>>       }
>> }
>
>> Dne 24.01.2017 v 15:05 Jaroslav Buchta napsal(a):
>>> Tusil jsem, ze je to fuj, ale nehodi to ani warning a pocita to po
>>> bytech...
>>> Tak to upravim, no ;-)
>>>
>>> Dne 24.01.2017 v 12:28 Martin Persich napsal(a):
>>>> Nevím sice co na to přesně říká norma, ale podle mého je to nesmysl.
>>>> Nevím, co bych od toho měl čekat. Přičtění "jedničky" vždy znamená
>>>> posun na další prvek daného typu a tady to není známo...
>>>> Martin. persich na transcon.cz
>>>>
>>>> ----- Original Message ----- From: "Jaroslav Buchta"
>>>> <jaroslav.buchta na hascomp.cz>
>>>> To: "HW-news" <hw-list na list.hw.cz>
>>>> Sent: Tuesday, January 24, 2017 11:55 AM
>>>> Subject: Rychla otazka na C
>>>>
>>>>
>>>> Nechce se mi to hledat a jeste jsem to nepouzil:
>>>>
>>>> Je korektni pricist integer hodnotu k ukazateli na void? V GCC to
>>>> funguje, ale mam pochybnosti...
>>>>
>>>> void *p = &buffer[0];
>>>>
>>>> ....
>>>>
>>>> p += 10;
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>> Hw-list na list.hw.cz
>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list