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;    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值