_at_關鍵詞用於在定義變量時指定變量所在地址。
_at_關鍵詞使用示例如下:
struct link { struct link idata *next; char code *test; }; struct link list idata _at_ 0x40; /* 定義位於內部RAM低128字節區0x40地址處的 結構體 */ char xdata text[256] _at_ 0xE000; /* 定義位於外部RAM 0xE000地址處的 數組 */ int xdata i1 _at_ 0x8000; /* 定義位於外部RAM 0x8000地址處的 整型變量 */ volatile char xdata IO _at_ 0xFFE8; /* 定義地址爲 0xFFE8的外部IO */ char far ftext[256] _at_ 0x02E000; /* 定義位於外部RAM 0x2E000地址處的數組 */ void main ( void ){ link.next = (void *) 0; i1 = 0x1234; text [0] = 'a'; IO = 6; ftext [0] = 'f'; }
在一個.c文件中如上定義,在另一個.c文件中可用如下方法引用這些變量:
struct link { struct link idata *next; char code *test; }; extern struct link idata list; extern char xdata text[256]; extern int xdata i1; extern volatile char xdata IO;