主要是日常的一些繁琐的编程问题,死活查不出来,个人新手,如果有问题或者不全面,请指正!
一、指针部分
1、同时定义两个指针注意
C语言语法规则。
int* a,b; //a为指针,b不为指针
2、指针和普通变量定义和赋值先后注意
原因暂未知。
错误示例
uchar led_wr(uchar num){ //错误,Keil C51编译器报错,左值错误
uchar* xdata i;
i=0xe000; //先定义和初始化指针
uchar code led_num[12]= //后定义数组变量
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
0x00,0xff};
*i=led_num[num];
return 0;
}
正确示例
uchar led_wr(uchar num){ //Keil C51编译器编译通过
uchar code led_num[12]= //先定义数组变量
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
0x00,0xff};
uchar* xdata i;
i=0xe000; //后定义和初始化指针
*i=led_num[num];
return 0;
}
3、C51中,定义外部存储指针数据注意
对C语言指针符号“*”,认识不深入。
<