Keil C51對C語言的關鍵詞擴展之一: _at_

 _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;    


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章