各位,谁能帮我分析分析这段代码的功能

2019-07-18 16:16发布

char get_cmd(char *argv[], char max_argc)
{
    static char cmd[MAX_CMD_LENGTH+1];
    char *c = cmd, argc = 0;
    while (1) {
        if (__kfifo_out(&recvfifo, c, 1) == 0) {
            if (!TIMERA_STARTED)
                LPM4;   // enter low power mode 4
            continue;
        }
        if (((c - cmd) >= (sizeof(cmd)-1)) ||
            *c == ' ') {
            *c = '';
            break;
        }
        c++;
    }
    *argv = strtok(cmd, " ");
    while(*argv++ && argc < max_argc) {
        *argv = strtok(NULL, " ");
        argc++;
    }
    return argc;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
外方爱
1楼-- · 2019-07-19 11:40
dirtwillfly 发表于 2017-2-13 15:04
用fifo方式接收一个字符串

if (((c - cmd) >= (sizeof(cmd)-1)) ||
            *c == ' ') {
            *c = '';
            break;
        }
这段是什么意思
dirtwillfly
2楼-- · 2019-07-19 16:38
外方爱 发表于 2017-2-13 15:14
if (((c - cmd) >= (sizeof(cmd)-1)) ||
            *c == ' ') {
            *c = '';

看收到的字符是不是结束符号或者长度是不是到了
外方爱
3楼-- · 2019-07-19 21:19
dirtwillfly 发表于 2017-2-13 15:23
看收到的字符是不是结束符号或者长度是不是到了

多谢
aw50420181750
4楼-- · 2019-07-20 01:05
 精彩回答 2  元偷偷看……
suzhanhua
5楼-- · 2019-07-20 01:21
外方爱 发表于 2017-2-13 09:43
对  但具体的每一步是干嘛的 有的地方就看不懂了

这是在哪里用到的代码?
suzhanhua
6楼-- · 2019-07-20 04:20
backlugin 发表于 2017-2-10 22:13
这个是分割指令吗?

这个一般不是在main函数里面才能出现的么?

一周热门 更多>