this "extract to show" compiles with the warning. I definitely do not want the overhead from mspace ignored. What am I missing in making this mspace dependent i.e VFcPtr always code.
here void VFDcdatLgt(unsigned char code VFcPtr[], VFcCcnt); unsigned char code VFinit[] = {0x1b, 0x40}; unsigned char xdata GCXvfdBuf[40]; void main (void) { VFDcdatLgt(VFinit, 2); // in initialize } /*- end main -*/ here void VFDcdatLgt(unsigned char code VFcPtr[], VFcCcnt) { unsigned char VFDCtemp; for ( VFDCtemp = 0 ; VFcCcnt !=0 ; VFDCtemp++, VFcCcnt--) { GCXvfdBuf[VFDCtemp] = VFcPtr[VFDCtemp]; } }
"At the risk of being called a pedant..." You're a pedant! there. ;-) trouble is, we're into the level of detail now where it all gets very pedantic... "I suspect the actual difference is in the syntactical scope of the 'code' keyword." yes - that's the kind of thing I was trying to get at. "For the array-style declaration, this distinction would appear to be impossible (there's no * you can stay to the left or right of)." Yes: because, with an array, there is no pointer to be stored anywhere - you just use the name, and the compiler knows implicitly to insert the address at compile time.
Note that the example at the end of the online description of this message is incomplete: http://www.keil.com/support/man/docs/c51/c51_c258.htm For the full description, see the PDF manual.