On Fri, Dec 13, 2002 at 14:32:40 +0200, Ruslan Ermilov wrote: > Pardon my ignorance here, but the following fragment > returns -1, doesn't it? > > #include <stdio.h> > void > main(void) > { > int i; > > i = (unsigned char)1 - (unsigned char)2; > printf("%d\n", i); > }
It very depends on compiler, i.e. does it implements "value preseving" or "unsigned preserving" for 'char' type conversions. Or ANSI C vs. common C mode. Better be safe for both. Read 6.10.1.1 section here: http://wwwrsphysse.anu.edu.au/doc/DUhelp/AQTLTBTE/DOCU_067.HTM -- Andrey A. Chernov http://ache.pp.ru/
msg48645/pgp00000.pgp
Description: PGP signature