We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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.