Re: C: Arduino : Přesun pole bytů do proměnné unsigned long
Miroslav Mraz
mrazik na volny.cz
Středa Listopad 8 20:03:38 CET 2023
Nedá. Nikdy nevíte, jakou blbost kdo vymyslí. Například gcc pro PDP11 má
__BYTE_ORDER__ = 3412 a jste namydlený. Já do toho nechci moc zasahovat,
je to složitá problematika, ale dneska používají pro přenos čísel JSON a
asi vědí proč.
Jako jednorázovka pro přenos mezi definovanými zařízeními se dá
jednoduše přetypovat a pak případně použít něco jako
__builtin_bswap32(), ale udělat to obecně nejde. A určitě to nejde pro
signed - nikde není zaručeno, že znaménkový typ je vždy dvojkový
doplněk, o float a double nemluvě.
Mrazík
On 08. 11. 23 19:36, Petr Labaj wrote:
> Spíš možná SHIFTovat a ORovat.
>
> Skoro si myslím, že při použití funkcí/maker typu htons a ntohs a
> přetypováním ukazatelů nebo unionem se dá udělat i přenositelný a
> spolehlivý kód.
> Ale třeba je to jen můj vrozený optimismus/naivita.
>
> PL
>
Další informace o konferenci Hw-list