Ссылка на изображение - https://i.stack.imgur.com/u9I3R.png
Освобождение от моего кода (биты опущены, поскольку они не важны)
struct viosReturnType {
bool done;
long long int returned;
bool remapped;
};
viosReturnType viosButtonprompt(char buf1[16], char buf2[16], bool keysp[6] = {0}, String *strar = 0, int *statear = 0) {...}
viosReturnType viosRemapreturn(viosReturnType lreturner, int *indexedarray){...}
viosButtonprompt
дал мне 0 проблем, и моя программа некоторое время работала правильно. Добавление viosRemapreturn
дает мне
xxx/LVIOS.ino:585:1: error: 'viosReturnType' does not name a type
viosReturnType viosRemapreturn(viosReturnType lreturner, int *indexedarray){
^~~~~~~~~~~~~~
Других проблем нет. Код внутри функций имеет нулевой эффект на все это. Аргументы имеют 0 эффекта на все это. Изображение показывает, что все это не в любой другой функции, все объявлено глобально и что это тот же самый "viosReturnType". Что это, пожалуйста, помогите, я прошу вас. Я попытался поместить вторую функцию над первой, без эффекта, с той же ошибкой, в той же функции, в другой строке.
Кроме того: теперь я попытался объявить пустую функцию, просто скопировав верхнюю строку моего Объявление других функций.
viosReturnType viosRemapReturn(char buf1[16], char buf2[16], bool keysp[6] = {0}, String *strar = 0, int *statear = 0) {/*empty*/}
Работает! Успех! А потом я удалил скопированные аргументы.
viosReturnType viosReturnRemap(){/*still empty*/}
И это вырвало ту же ошибку. Мой разум взрывается.
Представляет:
int SmartPoint() {}
struct viosReturnType {
bool done;
long long int returned;
bool remapped;
};
viosReturnType returner;
viosReturnType viosRemapReturn(viosReturnType lreturner, int *indexedarray) {
if (lreturner.done)
return {1, indexedarray[lreturner.returned], 1};
}
void setup() {}
void loop() {}
Вы видите эту «SmartPoint»? Да, если я удаляю его, этот репрезекс компилируется. Но я не могу удалить его где-либо в моем реальном файле, у меня нет таких пустых функций или чего-то такого!