123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /* $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 <stdio.h>
- 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;
- }
|