Hallo,
ich habe diese C-Funktion:
Leider funktioniert das so mit Compact-C nicht. Es gibt einige Syntaxfehler. Z.B. mag der die Pointer überhaupt nicht. Auch die Funktion "atoi" kennt er nicht.Code:#define MAX_PARAMS 6 int params[MAX_PARAMS]; int cmdsplit(char*cmd_string) { int cursor = 0; int param_nr = 0; // Parameterarray initialisieren for (int i=0;i<MAX_PARAMS;i++) params[i] = -1; /* Prüfen ob der command-string gültig beginnt */ if ((cmd_string == NULL) || (cmd_string[cursor] != '#')) return -1; while (cmd_string[cursor] != '\0' && cmd_string[cursor] != '*') // prüfen ob das ende erreicht wurde { char *tmp; cursor++; tmp = (cmd_string + cursor); // tmp wird auf den anfang des für atoi auszulesenden werts "gesetzt" params[param_nr] = atoi(tmp); // wert auslesen if (param_nr >= MAX_PARAMS) // sind mehr parameter verfügbar als erwartet? Stimmt was mit dem Commando nicht... return -1; param_nr++; // Überspingen der ausgelesen Zeichen und ermitteln des nächsten "interessanten" Teils im string. while((cmd_string[cursor] != ':') && (cmd_string[cursor] != '*') && (cmd_string[cursor] != '\0')) cursor++; } return param_nr; }
Kann mir jemand helfen, das zu übersetzen?







Zitieren

Lesezeichen