C/Przenośność programów: Różnice pomiędzy wersjami

#define PDP_TO_H(val) convert_order32((val), 3412, __BYTE_ORDER)
#define H_TO_PDP(val) convert_order32((val), __BYTE_ORDER, 3412)
#define LE_TO_BE(val) convert_order32((val), 1234, 4321)
#define BE_TO_LE(val) convert_order32((val), 4321, 1234)
#define PDP_TO_BE(val) convert_order32((val), 3421, 4321)
#define PDP_TO_LE(val) convert_order32((val), 3421, 1234)
#define BE_TO_PDP(val) convert_order32((val), 4321, 3421)
#define LE_TO_PDP(val) convert_order32((val), 1234, 3421)
int main (void)
unsigned char *v = (unsigned char*)&val;
int byte_order = *v * 1000 + *(v + 1) * 100 + *(v + 2) * 10 + *(v + 3);
printf("Porządek ");
if (byte_order == 4321) {
printf("Porządek big-endian (4321)\n");
} else if (byte_order == 1234) {
printf("Porządek little-endian (1234)\n");
} else if (byte_order == 3412) {
printf("Porządek PDP (3412)\n");
} else {
printf("Inny porządek (%d)\n", byte_order);
printf(" (%d)\n", byte_order);
}
return 0;
}
Anonimowy użytkownik