#include <reg52.h>
unsigned int add(unsigned int variable1,unsigned int variable2)
{
unsigned long x = (unsigned long)variable1+variable2; // C 51 当计算的数值大小不确定的时候 一定要统一类型
if(x>0xFFFF)
return 0;
else
return (variable1+variable2);
}
void main(void)
{
unsigned int var = add(65535,10);
while(1);
}
// 结果就是 0x00
(unsigned long)variable1 // 如果去掉 unsigned long 存储类型就变了。
最近发现自己老是犯低级错误,基础不牢固啊!
#include <reg52.h>
unsigned int add(unsigned int variable1,unsigned int variable2) reentrant
{
unsigned long x = (unsigned long)variable1+variable2; // C 51 当计算的数值大小不确定的时候 一定要统一类型
if(x>0xFFFF)
return 0;
else
return (variable1+variable2);
}
void main(void)
{
unsigned int var = add(65535,0x0155);
while(1);
}
// 结果就是 0x00
//(unsigned long)variable1 // 如果去掉 unsigned long 存储类型就变了。