Hi
Why does this declaration not work: char xdata *pointer _at_ postion;
but this one works: char xdata array[1] _at_ postion;
Should be theoretically the same, or not?
Thanks Egon
remember that there are two memory spaces to consider for a pointer here is my definitions, they should make it clear
// pointer in data in #define U8DI unsigned char idata * data // data idata #define U8DX unsigned char xdata * data // data xdata #define U8IX unsigned char xdata * idata // idata xdata #define U8XX unsigned char xdata * xdata // xdata xdata #define U8IC unsigned char code * idata // idata code #define U8DC unsigned char code * data // data code #define U8XC unsigned char code * xdata // xdata code #define U8CC unsigned char code * code // code code
note; no pointer point to DATA simply because that does not mak sense, there is no overhead from IDATA compared to DATA.
Erik
I really think that the OP needs to appreciate the basic difference before getting involved in the question of memory spaces and any other Keil specifics.
That is to say, he/she must appreciate that there is a difference between a pointer and an array.