Глюк в примере без кода
- Войдите на сайт для отправки комментариев
Вс, 09/08/2020 - 19:19
В моем скетче возникла ошибка:
"error: 'EthernetClientExtend' was not declared in this scope"
, хотя этот класс определен выше и используется по всей программе нормально.
Стал резать куски и дошел до следующего неработающего скетча:
void RTC_Time () { } void handleRTC () { } void handleEth () { } class EthernetClientExtend { int m_int; EthernetClientExtend () : m_int(0) {} }; void processCommand (EthernetClientExtend * a_pEthClientExt) { } void setup () { } void loop () { }
При компиляции выдает:
WebServer:21:21: error: variable or field 'processCommand' declared void
void processCommand (EthernetClientExtend * a_pEthClientExt)
^~~~~~~~~~~~~~~~~~~~
WebServer:21:21: error: 'EthernetClientExtend' was not declared in this scope
WebServer:21:44: error: 'a_pEthClientExt' was not declared in this scope
void processCommand (EthernetClientExtend * a_pEthClientExt)
^~~~~~~~~~~~~~~
C:\Users\Zefman\Documents\Arduino\project\udp_http\WebServer\WebServer.ino: In function 'void processCommand(EthernetClientExtend*)':
C:\Users\Zefman\Documents\Arduino\project\udp_http\WebServer\WebServer.ino:21:45: warning: unused parameter 'a_pEthClientExt' [-Wunused-parameter]
void processCommand (EthernetClientExtend * a_pEthClientExt)
^~~~~~~~~~~~~~~
exit status 1
variable or field 'processCommand' declared void
Но если удалить или переместить в конец первую функцию, то все компилируется нормально.
В чем причина такого легкого поведения Arduino v1.8.13 - ?
Вынесите декларацию в рядом лежащий .h файл и подключите его в начале ino. У Arduino IDE "горе от ума" часто происходит.
Спасибо, помогло.
Хотя я решил проблему добавлением слова "class " в processCommand(1), т.е.: