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