u8* sim900a_check_cmd(u8 *str)
{
char *strx=0;
if(USART2_RX_STA&0X8000) //接收到一次数据了
{
USART2_RX_BUF[USART2_RX_STA&0X7FFF]=0;//添加结束符
strx=strstr((const char*)USART2_RX_BUF,(const char*)str);
}
return (u8*)strx;
}
这个函数中strx=strstr((const char*)USART2_RX_BUF,(const char*)str);这里面全局数组USART2_RX_BUF强制转换const是什么作用。USART2_RX_BUF不是一个变量么?谢谢大家啦~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
因为strstr函数要求输入的参数必须是const u8*类型的,所以强制转换一下而已.
函数名: strstr
extern char *strstr(char *str1, const char *str2);
strstr(str1,str2)
str1: 被查找目标 string expression to search.
str2: 要查找对象 The string expression to find.
返回值:若str2是str1的子串,则先确定str2在str1的第一次出现的位置,并返回此位置到str1末尾的所有字符;如果str2不是str1的子串,则返回NULL。(注:若想返回str2在str1第一次出现的位置,不是这个函数)
你先把strstr()这个函数的用法搞清楚了就明白了,这个函数的大致功能是:从串口2接收到的数据中截取从“str”开始一直到结尾的字符串,然后返回这个字符串
---------------------------------
我问的是const在这里的作用啊!
---------------------------------
谢谢。知道了
没懂!还请大神帮忙说明下
一周热门 更多>