Re: Poslání struktury na Ethernet

Jindroush jindroush na seznam.cz
Neděle Říjen 22 10:39:03 CEST 2023


1) neposilate pointer, ale strukturu. Spravne by melo byt (byte*) &DATA1
2) hledate "union", ale nejsem si jist, jestli je tady potrebny/vhodny 
(diskuse k uzitecnosti unionu napr. zde 
https://stackoverflow.com/questions/252552/why-do-we-need-c-unions )

On 22.10.2023 9:50, Martin Záruba wrote:
>
> pro zápis dat pomocí knihovny Ethernet.h používám příkaz 
> client.write((byte*)DATA, DELKA); protože pole DATA je uint16_t.
>
> Jenže já bych potřeboval, aby DATA byla struktura, typu
>
> struct tDATA1 { int16_t DATA[92]; int16_t DATA2[92]; }; struct tDATA1 
> DATA1;
>
> příkaz
>
> client.write((byte*)DATA1, DELKA);
>
> hlásí chybu
>
> Compilation error: invalid cast from type 'tDATA1' to type 'byte* {aka 
> unsigned char*}'
>
> Jak to napsat, abych mohl poslat strukturu a nemusel jí nejpre 
> zkopírvat pomocí strcpy do pole byte, protože pak to zabere 
> dvojnásobek paměti. (struktura je mnohem větší, než v příkladu)
>
> Neexistuje v C něco jako ABSOLUTE v Pascalu, kde dvěma proměnným 
> přiřadím stejné místo v paměti?
>
> -- 
>
> Martin Záruba
>
> _______________________________________________
> HW-list mailing list  -  sponsored bywww.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


-- 
Jindroush<jindroush na seznam.cz>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20231022/3f2dd9b4/attachment.htm>


Další informace o konferenci Hw-list