标题:
关于KEIL的C语言的数组定义问题的请教
[打印本页]
作者:
yzhg
时间:
2019-5-19 21:42
标题:
关于KEIL的C语言的数组定义问题的请教
源程序正确运行,如下:
#include<reg51.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
uchar data a[32] _at_ 0x30;
uint i _at_ 0x55;
uint j _at_ 0x60;
uint t _at_ 0x65;
uchar data a[]={1,3,9,2,17,4,11,6,5,20,100,64,21,14,79,35,92,7,91,23,65,16,13,18,18,73,65,101,27,19,62,69};
void main()
{
for(i=0;i<31;i++)
{
for(j=0;j<31-i;j++)
{
if(a[j]>a[j+1])
t=a[j],a[j]=a[j+1],a[j+1]=t;
}
}
while(1);
}
为什么把数组定义放到程序里面后,数组的起始地址变为0x08 ???
修改后的程序:
#include<reg51.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
uchar data a[32] _at_ 0x30;
uint i _at_ 0x55;
uint j _at_ 0x60;
uint t _at_ 0x65;
void main()
{
uchar data a[]={1,3,9,2,17,4,11,6,5,20,100,64,21,14,79,35,92,7,91,23,65,16,13,18,18,73,65,101,27,19,62,69};
for(i=0;i<31;i++)
{
for(j=0;j<31-i;j++)
{
if(a[j]>a[j+1])
t=a[j],a[j]=a[j+1],a[j+1]=t;
}
}
while(1);
}
作者:
yzwzfyz
时间:
2019-5-20 08:01
在程序用到这个“组”时,程序必须认识这个组。了解这个就可以了。
作者:
yzhg
时间:
2019-5-21 21:17
yzwzfyz 发表于 2019-5-20 08:01
在程序用到这个“组”时,程序必须认识这个组。了解这个就可以了。
好的,理解了,谢谢!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1