#define add 0x32
#define max 0xFF78
#define min 0xEB8C
这样用有问题吗?编译是通过
与下面这样声明有区别吗?
uchar add=0x32;
uint max=0xFF78;
uint min=0xEB8C;
实际程序中,add / min / max 这三个都是固定不变的常量。用宏定义方式,编译的代码量要小三分一左右,不过测试中,会出错。 直接声明常量的方式虽然代码量偏大,不过测试中稳定,没出现错误。 程序中其它部分部分代码都不变,只是改变这三个来测试
另外,
void count(unsigned int m)
{
count=1000; //
count=count*m; //
while(count>0); //
}
与
void count(unsigned int m)
{
count=0; //
count=1000*m; //
while(count>0); //
}
这两种乘法计算差别大吗,测试中只有 count=count*m 这样用才是没问题。其中count在循环等待中通过中断来改变
另外不用函数,直接在程序中给中count的值也是会出错
过年期间才学会看简单的程序,现学的单片机,C也不熟悉。有没熟悉的网友说明一下其中的区别,谢谢 |