>> > + unsigned char b = (unsigned char) needle[i - 1]; >> > ... >> > + if (b == (unsigned char) needle[j]) >> >> Would it be cleaner to declare 'b' to be of type 'char' and avoid the >> casts? > > No; ISO C 99 section 7.21.4 says that when byte strings are compared the > elements are considered as 'unsigned char' values.
The first cast to unsigned char quoted above seems to be unnecessary: assigning a value to an object of type unsigned char will implicitly convert it to unsigned char. -- Ben Pfaff http://benpfaff.org