Hallo,

ich habe diese C-Funktion:
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; 
 }
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.

Kann mir jemand helfen, das zu übersetzen?