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;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
指针地址加减可以这么用,但没有直接用数组下标的方式直观.
如:直接用cmd做函参传递给读队列函数,用c做变量来统计读了几个数据.
立即数的++或--都是单指令,具体我也没测试速度会有多大差距.
指针引用也许会快点,但快那一点if (((c - cmd) >= (sizeof(cmd)-1)) 这一句要多加一次减法计算.综合下来我看没啥优势.
一周热门 更多>