Есть некоторая функция comparestr (), которая в качестве аргументов принимает два указателя на строки. Если входные строки одинаковы -- возвращает ноль. Для наглядности:
Код: Выделить всё
error = comparestr (&COMMANDS, &buffer);
Хочу вместо COMMANDS скармливать функции массив строк, вот так:
Код: Выделить всё
while (i <= 6)
{
error = comparestr (COMMANDS[i], &buffer);
if (error == 0) break;
i++;
}
Вопрос: как правильно описать такой массив ? Как правильно прописать аргумент функции ?
Сейчас описываю массив так:
Код: Выделить всё
/*Constants-------------------------------------- */
//-------------- Команды ---------------
const uint8_t SET_TIME[] = "settime\r";
const uint8_t SET_TELEPHONE[] = "settelephone\r";
const uint8_t SET_NUMBER[] = "setnum\r";
const uint8_t SET_SCHEDULE[] = "setschedule\r";
const uint8_t SHOW_SETTINGS[] = "showsettings\r";
const uint8_t SAVE_SETTINGS[] = "save\r";
const uint8_t *COMMANDS[6] = {SET_TIME,
SET_TELEPHONE,
SET_NUMBER,
SET_SCHEDULE,
SHOW_SETTINGS,
SAVE_SETTINGS};
Выражением *COMMANDS[6] я делаю массив указателей, каждой ячейке массива присваиваю значение указателей на строки. Но компилятор пишет, что "несовместимый тип аргумента" для функции comparestr ().
Заранее благодарю
P.S. Использую STVD + Cosmic