sscanf 读入uint8_t类型的16进制值,格式转换标识应该是什么,%x会越界
P_T_P 2011-07-08 03:25:23 eg:
uint16_t u1=0xff,u2=0xff,u3=0xff,u4=0xff;
char str[]="ab-cd";
我开始使用如下代码:
sscanf(str,"%x-%x",&u2,&u3);
执行结果 u2 == ab,u3=cd;
但是:
u1或u2(根据系统不同而不同,因为栈的增长方向)的值被改变,变为零。
所以这里发生了越界。
我想问各位大侠有木有合适的格式转换符来做这个事情,是%什么。