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