/* $Header$ */ /* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ #include char bytes_reversed = 0; char words_reversed = 0; char char_unsigned = 0; /* * Determine the byte/word order in shorts/longs, assuming the size of a short * is 2 chars, and the size of a long is 4 chars. Not all theoretical * possibilities are tested; only bytes reversed and/or words reversed. */ determine_ordering() { short s; long l; register char *cp; register short *sp; cp = (char *)&s; cp[0] = 0x01; cp[1] = 0x02; if (s != 0x01 + (0x02 << 8)) bytes_reversed = 1; sp = (short *)&l; sp[0] = 0x0001; sp[1] = 0x0002; if (l != 0x0001 + (0x0002L << 16)) words_reversed = 1; } /* * determine whether characters are unsigned or signed */ uns_char() { char c = 0200; int i = c; if (i > 0) char_unsigned = 1; } main() { determine_ordering(); uns_char(); printf("#define BYTES_REVERSED %d\n", bytes_reversed); printf("#define WORDS_REVERSED %d\n", words_reversed); printf("#define CHAR_UNSIGNED %d\n", char_unsigned); return 0; }