Maybe i have missed an ANSI C rule?? With old compiler (V3.40) both versions show the same results. With new compiler versions the first version recognizes dead code which is eliminated. Werner
Operator "==" has higher priority then operator "&". Right nototion is second version or: if( (x & 0x0F)==0 ){ do something} The new compiler version is more ANSI C consequent I think. BTW: How about MISRA C Rules? VK
Sorry about my ignorance what is MISRA? Werner
http://www.misra.org.uk/misra-c.htm
You can read also follow article: http://www.embedded.com/1999/9912/9912feat1.htm There are also some links. HTH VK