Hi Friends, I'm Currently working on C51v6.02 developed by Keil, I'm facing a problem with the compiler when I compile a similar code like this
main() { char xdata *Data_Ptr = 0x0000; /* Pointer to the 0x000 location */ while(some loop) *Data_Ptr++; /* Points to the next data location on the RAM-- here 0x0001 */ }
.\FILENAME(LINENUMBER): warning C275: FILENAME: expression with possibly no effect
Proudly wasting time since 1981
I don't think the warning message is about pointer incrementing, instead, it is telling you that you are not doing any assignment operations in that loop - "expression with possibly no effect ". That's exactly what it's telling you. Look folks, we need to learn ISO/ANSI C before we can start attacking the Keil compiler. If * didn't have precedence over ++ then how would the classic memcpy() example ever work? E.g.
while (count--) { *pDest++ = *pSrc++; }
int main(void) { int status; for (;;) status; /* legal but useless */ return 0; }