BYTE is an unsigned char
and MAC
is thus an unsigned char[]
.
sprintf
wants char*
.
Change MAC's declaration to:
char MAC[64];
Here's a demo:
char mac[64];
unsigned long long testMac = 0xAABBCCDDEEFF;
// without spaces
sprintf(mac, "MAC is: %llX", testMac);
printf("%s\n", mac);
// with spaces - not sure if order is correct!
unsigned char* pTestMac = (unsigned char*)&testMac;
sprintf(mac, "MAC is: %X %X %X %X %X %X",
(unsigned)pTestMac[5],
(unsigned)pTestMac[4],
(unsigned)pTestMac[3],
(unsigned)pTestMac[2],
(unsigned)pTestMac[1],
(unsigned)pTestMac[0]
);
printf("%s\n", mac);
Output:
MAC is: AABBCCDDEEFF
MAC is: AA BB CC DD EE FF