C51单片机中关于指针的定义方式

C51单片机中关于指针的定义方式

对于C51来讲,指针的变量定义应该包括以下信息:

  • 变量自身位于哪个存储区中?
  • 被指向的变量位于哪个存储区中?

定义格式

C51指针定义的一般格式如下:

数据类型 {存储类型1} * {存储类型2} 指针变量名 {=&被指向变量名};

说明:

  • 数据类型指的是被指向变量的数据类型如char、int、long等
  • 存储类型1指的是被指向变量所在的存储类型,如data、code、xdata等
  • 存储类型2是指的指针变量所在的存储类型

举例

例如:

char xdata a = 'A';
char xdata * ptr = &a;

其中的char xdata是相互对应的。也就是说,a是位于xdata存储区域内的变量,而ptr是位于data存储区(如果没有特殊说明,声明的变量都在data存储区)指向xdatachar类型的指针变量。也可以理解成存储的是xdatachar类型变量a的地址

如果采用如下定义:

char xdate a = 'A';
char xdata * idata ptr = &a;

那么其中的ptr指向的是xdata存储区中char类型的变量a,而ptr本身存储在idata区域中。
加粗样式

你可能感兴趣的:(51单片机,单片机,嵌入式硬件)