Problemi di conversione tra data types

lesto:
la seconda è più corretta.
La prima ti nasconde il fatto che quando fai il casting, oltre a rimanere in memoria le 3 variabili in byte ce le hai anche in unsigned long. con la seconda invece hai solo 3 unsigned long.

poi per risparmiare qualche calcolo all'arduino puoi indicare i numeri come long, altrimenti lui li prende come interi e poi fa un cast in automatico (che ruba cpu)

Potresti aggiungere qualche dettaglio per favore? Mi interessa la cosa.
Cioè in pratica in ogni caso alla fine della funzione, una volta che questa fa la return al loop principale, le variabili rimangono tutte in memoria?
Ad ogni modo io pensavo che la prima fosse meglio perchè al di fuori della funzione stessa devo comunque dichiarare delle variabili ed in questo caso sarebbero 3 byte anzichè 3 unsigned long.