定义了 “static char Locksta=0xa5”,下面用if判断:if( Locksta==0xa5){...};调试的时候发现识别不出来Locksta,我把Locksta=0xa5换成Locksta=1,然后判断if( Locksta==1)这样可以识别。问:vs中c++程序变量是不是不能用16进制赋值啊?
对于你说的1正确,那是应为1在ASCII码的范围内超过127就不行了
你不想看看 locksta的值? 先看值等于多少 再用另外的来测试嘛
0xa5本身就是一个int类型的值165,只是用16进制表示了,但是你把一个int型的赋值给char类型就是错的当然不好比较
用unsigned char!否则带符号数会被认为是负的,比如0xff,你赋值给char,那么他是负一,你拿-1和0xff(默认为int,值为255)比较,当然不对
为什么输出“错误”