Hello, Suppose you declare an array in a certain memory space, for instance
unsigned char xdata SendBuffer[ 20 ];
byte *SendBuffer
TempVal = *( SendBuffer + Counter );
TempValue = *( (unsigned char xdata*)SendBuffer + Counter );
idata
"you'll get more efficient code by using specific pointers" That depends upon your definition of "efficient" If you use Generic Pointers, the compiler will use Library calls to handle them; if you use memory-specific pointers, the compiler can put the code in-line. Thus, using memory-specific pointers can actually increase your code size - although execution speed should be improved. As I said, it all depends on what you mean by, "efficient"
This is why the compiler has an option for the optimizer to favor speed or to favor space :)