Hi, there is huge misunderstood in C166, just try this: #pragma code // and char * cptr; // and this: cptr[-1]=*cptr++; and look at the assmbled machine code. and ... have a lot of fun ...
"The first is that you used cptr & cptr++ in the same expression (actually between 2 sequence points)." See the following for a discussion of a similar "problem:" http://www.keil.com/forum/msgpage.asp?Offset=-1&MsgID=2016
Should I need some special addendum for CA166 ? This line will produce correct code: *cptr++=cptr[1]; And I sholud say that default memory model was far data. Could you say why other compilers work fine with this problem ? (gcc)