单片机问题,用c语言表示内存的单元地址,比较两个单元数的大小,下面是一段间单的程序,不知道对不???
voidmain(){unsignedchar*D1,*D2,*D3;//先定义两个指针变量。D1=0x20;//分别指向相应的地址。D2=0x30;D3=0x40;if...
void main()
{
unsigned char *D1,*D2,*D3; //先定义两个指针变量。
D1=0x20;//分别指向相应的地址。
D2=0x30;
D3=0x40;
if((*D1)>=(*D2))
{
*D3 = *D2; //将较小的数存到D3所指向的空间(0x40)
}
else
{
*D3 = *D1;
}
}
在标准c中指针不能赋值一常数,不知道在单片机可以不??如果程序是错的,那对的怎样表示??请高手帮忙,在下感激不尽。。。。O(∩_∩)O谢谢 展开
{
unsigned char *D1,*D2,*D3; //先定义两个指针变量。
D1=0x20;//分别指向相应的地址。
D2=0x30;
D3=0x40;
if((*D1)>=(*D2))
{
*D3 = *D2; //将较小的数存到D3所指向的空间(0x40)
}
else
{
*D3 = *D1;
}
}
在标准c中指针不能赋值一常数,不知道在单片机可以不??如果程序是错的,那对的怎样表示??请高手帮忙,在下感激不尽。。。。O(∩_∩)O谢谢 展开
1个回答
展开全部
1、经过检验,除个别字符没有使用ASCII码外。没有问题。
2、常用的表达如下:
#include<ABSACC.h>
main()
{
if(DBYTE[0x20]>=DBYTE[0x30])
DBYTE[0x40]=DBYTE[0x30];
else
DBYTE[0x40]=DBYTE[0x20];
while(1);
}
仅供学习,毫无用途。
3、更理想的表达如下:
(无需关注底层。否则又回到汇编啦。)
unsigned char i=1,j=2;
unsigned char *p1,*p2;
p1=&i;
p2=&j;
if(*p1!=*p2)
*p1=*p2;
2、常用的表达如下:
#include<ABSACC.h>
main()
{
if(DBYTE[0x20]>=DBYTE[0x30])
DBYTE[0x40]=DBYTE[0x30];
else
DBYTE[0x40]=DBYTE[0x20];
while(1);
}
仅供学习,毫无用途。
3、更理想的表达如下:
(无需关注底层。否则又回到汇编啦。)
unsigned char i=1,j=2;
unsigned char *p1,*p2;
p1=&i;
p2=&j;
if(*p1!=*p2)
*p1=*p2;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询