uint8_t conv2d(const char* p)
{
uint8_t v = 0;
if ('0' <= *p && *p <= '9') v = *p - '0';
return 10 * v + *++p - '0';
}
'0'是0这个字符,但是如果在这种比较的时候参与运算的这个字符的ASCII值,0的ASCII应该是48,9的是57,if语句里面的意思是这样的,如果*p大于等于0且小于等于9的话。。。为什么不直接写*p>=0呢,是因为*P的数据类型不是int,而是char,所以用这种方式表达