va_arg

Milan B. milan na bastl.sk
Sobota Červenec 23 21:37:53 CEST 2016


On 23. 7. 2016 11:26, Pavel Hudecek wrote:
> Díky za podrobné vysvětlení.
>
> Takže teď tam mám:
>
> uint8_t sd[10];
> uint8_t *sendData;
> (...)
> sendData=sd;
> (...)
> sendData[index++] = (uint8_t)va_arg(fPar, uint32_t);
>
> Funguje a negeneruje warningy.
>
> A o kousek dál, kde chci přenášet pole, na které byl předán pointer, je:
>
> sendData=(uint8_t *)va_arg(fPar, uint32_t);
>

Myslim, ze tu sa da pouzit rovno:

sendData=va_arg(fPar,uint8_t*);


> Taky funguje bez protestů.
> Je to tak správně, nebo je v tom nějaký potenciální zádrhel?
>

Problem je len s typmi mensimi ako minimalne slovo ulozitelne na zasobnik.

Vo vasom pripade by problem zrejme nastal, ak by sizeof(uint32_t) nebolo 
rovne sizeof(uint8_t*)

-m-

> PH 


------------- další část ---------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3810 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20160723/b7c7887a/attachment.bin>


Další informace o konferenci Hw-list