#include union endian_data { int word; char bytes[sizeof(int)]; }; int main(void) { union endian_data d; d.word = 0x1; if (d.bytes[0] == 0x1) { printf("little endian\n"); } else { printf("big endian\n"); } return 0; }