sim900a.c中的(const char*)USART2_RX_BUF作用

2019-08-22 13:47发布

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不是一个变量么?谢谢大家啦~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-08-22 14:21
回复【3楼】吉庆:
---------------------------------
因为strstr函数要求输入的参数必须是const u8*类型的,所以强制转换一下而已.
木頭love@rong
2楼-- · 2019-08-22 16:49
包含文件:string.h
函数名: 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”开始一直到结尾的字符串,然后返回这个字符串
吉庆
3楼-- · 2019-08-22 17:18
回复【2楼】木頭love@rong:
---------------------------------
我问的是const在这里的作用啊!
bg5jw
4楼-- · 2019-08-22 20:58
 精彩回答 2  元偷偷看……
吉庆
5楼-- · 2019-08-23 02:51
回复【5楼】正点原子:
---------------------------------
谢谢。知道了
Kentang
6楼-- · 2019-08-23 04:47
USART2_RX_BUF[USART2_RX_STA&0X7FFF]=0;//添加结束符  这句话是什么意思了?
没懂!还请大神帮忙说明下

一周热门 更多>