Я нахожусь на MCU с чрезвычайно ограниченным пространством, и я каким-то образом теряю свою ссылку на C. Я хочу формат примерно такой:
int commandsubstring(char *stringaddress,char *substringaddress);
Однако я выполнил эту процедуру вASM, потому что у меня была какая-то проблема в C, и я просто хотел сделать это.Теперь, когда это сделано, я хочу это исправить.Функция выполняет чтение команды SCPI .Я беру формат "MEASure: VOLTage: DC?"и тогда я рекурсивно возвращаю команду.В моем примере хочу вернуть адрес подстроки
MEASure:VOLTage:DC?
^ ^
Я хочу иметь возможность сделать что-то вроде:
char *cmd="MEASure:VOLTage:DC?";
char *subcmd;
commandsubstring(cmd, subcmd);
printf("%s\n", cmd);
printf("%s\n", subcmd);
И затем получить результат
MEASure:VOLTage:DC?
VOLTage:DC?
Я не уверен почему, но я теряю указатель где-то в процессе.В остальной части кода я просто возвращаю структуры, но из-за того, что эта конкретная часть является рекурсивной, я хотел попробовать что-то, что мне показалось более безопасным, но я просто не могу получить правильный C, и это просто брейногде-то.Любая помощь будет принята с благодарностью.
Редактировать Это не вопрос о токенизации, а просто правильный способ правильно вернуть другое место в той же строке.