初级会员

- 积分
- 182
- 金钱
- 182
- 注册时间
- 2018-3-28
- 在线时间
- 30 小时
|

楼主 |
发表于 2018-9-7 23:52:49
|
显示全部楼层
刚刚试了一下:
1.u8* ptr = test;编译器不通过,必须u8* ptr = (u8*)test; 看来不能像u8 i=0x0022一样截取低8位。
2.搞明白了:指针P+1 = 指针P + sizeof(指针的类型) * 1 指针不仅仅是单纯的内存地址。
十分感谢您!
3.另外关于C标准库中的sscanf函数,举个例子:
char str[]="192.168.0.1";
u8 str_to_u8[4];
sscanf("%d.%d.%d.%d",str_to_u8,str_to_u8+1,str_to_u8+2,str_to_u8+3);
这个是可以得到正确的值的。
但是下面这个第一个值没有正确得到,请教下:
char strtemp[100]="AT+CIFSR\r\n+CIFSR:\"192.168.1.102\"\r\n+CIFSR:\"12:34:56:78:90:de\"\r\n";
u8 Sever_IP[4]={0};
u8 mac[6]={0};
sscanf(strtemp,"%*[^\"]\"%d.%d.%d.%d\"%*[^\"]\"%02x:%02x:%02x:%02x:%02x:%02x\"",&Sever_IP[0],&Sever_IP[1],&Sever_IP[2],&Sever_IP[3],&mac[0],&mac[1],&mac[2],&mac[3],&mac[4],&mac[5]);
printf("severIP is:%d.%d.%d.%d\r\nmac is %02x:%02x:%02x:%02x:%02x:%02x",Sever_IP[0],Sever_IP[1],Sever_IP[2],Sever_IP[3],mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);
运行的结果却是:
severIP is:0.168.1.102
mac is 12:34:56:78:90:de
少了个192,我认为可能是后面把前面的覆盖了,但不确定也不知道哪里出了问题,请指教!! |
|