On Mon, 19 Mar 2007, Orin Eman wrote: > Some compilers turn c <<= 1 into c = (int)c << (int)1 and throw > warnings if c is smaller than int, but don't throw the warning on c = > c << 1. As far as C is concerned, there is no difference between c <<= 1; and c = c << 1; when "c" is a char. "c" will be promoted to an "int" in either case. "1" is always an "int", so it is not promoted. If your compiler issues diagnostics on one and not the other, I would call it a bug in the compiler, though you really don't want to be doing shift operations on a "char" since C doesn't specify whether it's signed or not. -- John W. Temples, III -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist