vieleicht kann man das ja noch abkürzen ?
Du solltest wirklich versuchen, union ( aus Udo's Vorschlag) zu verstehen.
Wenn das Ziel ist, einen Speicherbereich wahlweise als unsigned long oder als byte array zu sehen, ist union wirklich die beste "Abkürzung"
Beides geht:
A:
union {unsigned long UL; byte B[4];} OperationHours;
OperationHours.UL = 0x12345678;
Serial.println( OperationHours.UL ); // liefert 305419896 ( Dezimalwert )
for (byte i=0; i < 4; i++) {
Serial.print(" 0x"); Serial.print(OperationHours.B[i],HEX);
} // liefert die einzelnen Bytes: 0x78 0x56 0x34 0x12
B:
union {unsigned long operationHours; byte array[4];} data;
data.operationHours = 305419896; // ( Dezimalwert )
Serial.println (data.array[0]); // Dezimalwert des niedrigwertigsten Bytes ( 120 = 0x78 )
Was das ganze (für Informatiker) verkompliziert -- und dich evtl. in Udo's Link abschreckt -- , ist die Sache dass die Reihenfolge der einzelnen Bytes in einer größeren Variable vom Prozessor abhängt. Aber da du ja nicht vom Arduino auf einen anderen Maschinentyp transportieren willst, sondern da wiederherstellen wo es herkam, ist das kein Problem.