avr单片机c语言程序,下面的可以实现吗?如果不行,求解救

定义unsignedcharp然后p=PINB&0X01请问我能不能if(;p==0x01;)就是能不能把p的值这样作为判定条件用?条件只能是int型吗?抱歉啊各位,上面... 定义unsigned char p
然后p=PINB&0X01
请问我能不能if(;p==0x01;)就是能不能把p的值这样作为判定条件用?条件只能是int型吗?
抱歉啊各位,上面的一时手误打错了,是for(;p==0x01;)
展开
 我来答
gdxizhilang
2013-11-07 · TA获得超过3333个赞
知道小有建树答主
回答量:802
采纳率:50%
帮助的人:302万
展开全部

p的值当然可以作为判定条件用,char 型和Int型都可以,但

  1. 您的if(;p==0x01;);   是错的,应该为for(;p==0x01;) ;

  2. 另外如果p定义为 unsigned int p;   则应p=(unsigned int)(PINB&0x01);

追问
听说字符型变量比较需要一个特定的函数,像上面的p是字符型变量,也可以用双等号直接判断是否相等吗?谢谢您了
追答
当然可以直接判断,不需要什么特定函数啊。 因为unsigned char p 定义后,其实对计算机来说不论字符还是十六进制数,都是0-255 ,所以可以直接判定,p==0x01这个语句没有问题。
liang890319
2013-11-07 · TA获得超过1235个赞
知道小有建树答主
回答量:1446
采纳率:50%
帮助的人:440万
展开全部
可以这样用
char int long 等变量都可以用if判断
只不过指针的判断特殊点
追问
抱歉我上面的打错了,,,没有用到指针吧?我主要想问那个双等号能不能用在这个字符型变量上的判断,是否需要特定函数呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ec35c0b5a
2013-11-07 · TA获得超过1692个赞
知道大有可为答主
回答量:2508
采纳率:73%
帮助的人:1199万
展开全部
你不是舍近求远嘛,你直接使用if(PINB & 0X01)这样的逻辑判断就行了嘛!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式