标题:有个错误弄不明白
只看楼主
daisyzhou45
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2006-2-10
 问题点数:0 回复次数:11 
有个错误弄不明白
if (eight_to_24(USART0_Receive(),USART0_Receive(),USART0_Receive())== E_pc_write_cpu)
finish_report(write_cpu);//接收结束指令,发送完成报告
else ERROR_handle(end_error);//没有接收到结束指令,发送错误报告

warning:comparison is always false due to limited range of data type

这是为什么?

相关的程序在下面:
定义一个函数,分成两个8位传送16位的数据

long eight_to_24(unsigned char eight_high,unsigned char eight_mid,unsigned char eight_low)//将数据的低位和高位传进函数
{
unsigned long high=0;
unsigned int mid=0;
high=(long)eight_high;
mid=(int)eight_mid;
return(eight_low+(eight_mid<<8)+(high<<16)); //返回组合好后的数值

}

unsigned char USART0_Receive( void )
{

return (0x34);
}
搜索更多相关主题的帖子: cpu eight Receive char unsigned 
2006-02-10 10:47
daisyzhou45
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2006-2-10
得分:0 
补充一下:
在头文件中:
#define E_pc_write_cpu 0x343434

2006-02-10 10:57
超级新手
Rank: 2
等 级:论坛游民
帖 子:185
专家分:59
注 册:2006-2-9
得分:0 
unsigned char  //这样的类型有吗?

快快来我的群:13485998
学学C,玩玩算法,搞搞加密,比比谁更菜?
ARM恨死你。
2006-02-10 11:04
daisyzhou45
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2006-2-10
得分:0 
确定有啊,长度是1个BYTE,范围是0-256


2006-02-10 13:07
超级新手
Rank: 2
等 级:论坛游民
帖 子:185
专家分:59
注 册:2006-2-9
得分:0 
能把完整代码帖出来吗
看得不明白

快快来我的群:13485998
学学C,玩玩算法,搞搞加密,比比谁更菜?
ARM恨死你。
2006-02-10 13:09
daisyzhou45
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2006-2-10
得分:0 
if (eight_to_24(USART0_Receive(),USART0_Receive(),USART0_Receive())== E_pc_write_cpu)
警告是针对这句的,说:eight_to_24(USART0_Receive(),USART0_Receive(),USART0_Receive())== E_pc_write_cpu
这个总是不成立的,另为两个是输出结果的报告,很简单的


2006-02-10 13:23
超级新手
Rank: 2
等 级:论坛游民
帖 子:185
专家分:59
注 册:2006-2-9
得分:0 
你说unsigned char 是1Byte
那你 左移 之后 范围。。。

快快来我的群:13485998
学学C,玩玩算法,搞搞加密,比比谁更菜?
ARM恨死你。
2006-02-10 14:13
daisyzhou45
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2006-2-10
得分:0 
左移8位的是 int 型,int空间 2byte
左移16位的是long 型啊 long空间4byte

2006-02-10 14:26
超级新手
Rank: 2
等 级:论坛游民
帖 子:185
专家分:59
注 册:2006-2-9
得分:0 

看不出了 没什么问题
那你if 完之后那些 你检查了吗


快快来我的群:13485998
学学C,玩玩算法,搞搞加密,比比谁更菜?
ARM恨死你。
2006-02-10 15:49
daisyzhou45
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2006-2-10
得分:0 
后面的没有问题,结果也都是对的,但是这个报告是错的,本来是正确,它都给你报错,这程序就用不了了

不过还是很感谢你的热心帮助

2006-02-10 16:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-45015-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.304327 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved