/* !!DESCRIPTION!! Cast to char !!ORIGIN!! Piotr Fusik !!LICENCE!! PD */ #include #include static unsigned int failures = 0; int f1(int i, int j) { return (signed char) (i + 1) == j; } int f2(int i, int j) { return (unsigned char) (i + 1) == j; } int f3(int i, int j) { return (char) (i + 1) == j; } int main(void) { printf("f1: got :%04x ", f1(0x1234, 0x35)); if(f1(0x1234, 0x35) == 0) { printf("- failed"); failures++; } printf("\n"); printf("f2: got :%04x ", f2(0x1234, 0x35)); if(f2(0x1234, 0x35) == 0) { printf("- failed"); failures++; } printf("\n"); printf("f3: got :%04x ", f3(0x1234, 0x35)); if(f3(0x1234, 0x35) == 0) { printf("- failed"); failures++; } printf("\n"); return failures; }