Gast
#492966
Hallo, ich experimentiere gerade mit einem ENC28J60. Da ich die MAC-Addressen nicht einem Char-Array speichern wollte, habe ich eine uint64_t-Variable (unsigned long long) genommen. Ich habe mir dann ein Makro geschrieben, welches 6 einzelne Bytes in die eine Variable schreibt: #define GET_MAC(MAC1, MAC2, MAC3, MAC4, MAC5, MAC6) (((u08_t)MAC1) | (((u08_t)MAC2) << 8) | (((u08_t)MAC3) << 16) | (((u08_t)MAC4) << 24) | (((u08_t)MAC5) << 32) | (((u08_t)MAC6) << 40)) Allerdigs bekomme ich beim kompilieren immer die Fehler: ../main.c:27: warning: left shift count >= width of type ../main.c:27: warning: left shift count >= width of type ../main.c:27: warning: left shift count >= width of type ../main.c:27: warning: left shift count >= width of type Wenn ich die Variable direkt angebe mit z.B. mac = 0x112233445566 Dann gibts auch nen Fehler. Da muss man dann noch ull hinterstellen wie z.B. mac = 0x112233445566ull Aber wie mache ich das beim Makro? Habe mit ull schon versucht an versch. Stellen. Hat baer nicht funktioniert.