0

例如,我想将整个代码块输入到命令中:

int k = 0;

for (k = 0; k < 50; k++) 
{
    sprintf(buf, "M LR 10 -10\n");                     //We put the string "M L 10" into the string buffer.
    write(sock, buf, strlen(buf));                     //We send the buffer into the socket.
    memset(buf, 0, 80);                                //Clear the buffer, set buffer to value 0.
    read(sock, buf, 80);                               //Read from the socket to get the results.
    int lme, rme;
    sprintf(buf, "S MELR\n");                          //sensor command to find ME values
    write(sock, buf, strlen(buf));                     //sends the buffer to the socket
    memset(buf, 0, 80);                                //Clear the buffer, set buffer to value 0.
    read(sock, buf, 80);                               //read from socket to get results.
    sscanf(buf, "S MELR %i %i\n", &lme, &rme);         //takes lme and rme values from results
    printf(buf, "%3i   %-4i\n", lme, rme);
    //distance = 2 * (22/7) * r
}

for (k = 50; k < 51; k++) 
{
    sprintf(buf, "C RME\n");                           //We put the string "C RME" into the string buffer to reset.
    write(sock, buf, strlen(buf));                     //We send the buffer into the socket.
    memset(buf, 0, 80);                                //Clear the buffer, set buffer to value 0.
    read(sock, buf, 80);                               //Read from the socket to get the results.
}

这使我能够仅更改{sprintf(buf, "M LR 10 -10\n");}ie 10and中字符串的值-10,其余过程将自行执行:

比如set_motor_speed(10 -10\n)在主代码中会执行整个函数,怎么做呢?

4

1 回答 1

5

正如其他人所说:你可以在一本 C 语言的书中读到这种东西,但是我们很好:

set_motor_speed(int a, int b) {
    ...
    for(k = 0; k < 50; k++) {
        sprintf(buf, "M LR %i %i\n", a, b);
        ...
    }
    ...
}

set_motor_speed(10, -10);
set_motor_speed(5, -5);
于 2013-02-14T14:41:32.467 回答