Witam.
Czy istnieje jakiś prosty patent na stworzenie struktury w formacie Big-Endian (oczywiście pod windowsa)
Chciałbym odczytać taką strukturę
struct log
{
unsigned int TimeStamp;
unsigned char TimeFloat;
unsigned char u1;
unsigned int ID;
unsigned char u2;
unsigned char u3;
unsigned short Cnt;
unsigned int Value;
};
I jedyne co wykombinowałem to to:
typedef unsigned int UINT;
typedef unsigned char UCHAR;
unsigned int main(UCHAR *d, UINT *TimeStamp, UINT *TimeFloat, UINT *u1, UINT *ID, UINT *u2, UINT *u3, UINT *Cnt, UINT *Val)
{
*TimeStamp = (d[0]<<24)|(d[1]<<16)|(d[2]<<8)|(d[3]);
*TimeFloat = d[4];
*u1 = d[5];
*ID = (d[6]<<8)|(d[7]);
*u2 = d[8];
*u3 = d[9];
*Cnt = (d[10]<<8)|(d[11]);
*Val = (d[12]<<24)|(d[13]<<16)|(d[14]<<8)|(d[15]);
}
Jak widać nie wygląda to zbyt przyzwoicie i zastanawiam się czy nie da się tego ugryźć w jakiś lepszy sposób, bardziej czytelny i wydajny...