va_arg

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Sobota Červenec 23 20:22:38 CEST 2016


Jo takhle, to je pak OK asi vsechno.

Dne 23.07.2016 v 12:42 Pavel Hudecek napsal(a):
> Protože typické použití je, že se posílá 1 nebo 2 bajty a s polem by 
> to bylo nepraktické, ale občas možná bude potřeba poslat pole.
>
> sd[index++]:
> A nebude vadit, když bych pak ve druhém případě sd změnil na pole jinde?
>
> PH
>
> -----Původní zpráva----- From: Jaroslav Buchta
> Bude to IMHO zbytecne narocne na zasobnik, to nemuzete ty bajty predat
> jako ukazatel na pole a pocet prvku???
> proc nepouzivate rovnou sd[index++] = ... v prvnim pripade ?
> Pokud neni potreba setrit pameti, tak bych rekl OK.
>
> Dne 23.07.2016 v 11:26 Pavel Hudecek napsal(a):
>> 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);
>>
>> Taky funguje bez protestů.
>> Je to tak správně, nebo je v tom nějaký potenciální zádrhel? 
>
> _______________________________________________
> 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