#include int compConstant(const unsigned char *x,const unsigned char *y) { unsigned int differentbits = 0; #define F(i) differentbits |= x[i] ^ y[i]; F(0) F(1) F(2) F(3) F(4) F(5) F(6) F(7) return (1 & ((differentbits - 1) >> 8)) - 1; // returns 0 if equal, 0xFF..FF otherwise } int main(void) { int comp=1; char pw[]="secret"; char in[7]; int result; result = compConstant(pw, in); printf ("%d", result); }