1 #include <ctype.h> 2 #if ((' ' & 0x0FF) == 0x020) 3 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') 4 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) 5 #else 6 # define ISLOWER(c) \ 7 (('a' <= (c) && (c) <= 'i') \ 8 || ('j' <= (c) && (c) <= 'r') \ 9 || ('s' <= (c) && (c) <= 'z')) 10 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) 11 #endif 12 13 #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) 14 int main()15 main () 16 { 17 int i; 18 for (i = 0; i < 256; i++) 19 if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) 20 exit(1); 21 exit (0); 22 } 23