B
Bart van Ingen Schenau
There would be no need for a char* to be able to point into the code
space (unless the compiler supports meaningful conversions between
char* and function pointers as an extension). Pointing into the
register space could be useful, of course (but again it's probably not
required for C semantics).
The names 'code space' and 'data space' are not quite accurate.
As far as the compiler is concerned, all ROM is in the 'code space'
and all (volatile) RAM is in the 'data space'. The compilers for the
8051 CPU allow one to store constant data in the 'code space', so it
is meaningful to have data pointers that point into the code space.
Bart v Ingen Schenau