O co chodzi z 'void value not ignored as it ought to be’?
Testując jakiś prosty szkic na Arduino IDE 1.6.7, natknąłem się na błąd, który w pierwszej chwili wydawał się zupełnie bez sensu…
Problem pojawia się w przypadku gdy mamy szkic w więcej niż jednej zakładce i spróbujemy użyć funkcji typu void
(tak zdefiniowaliśmy add_two
) tak jakby zwracała wartość ale w innej zakładce niż ta, w której ją zdefiniowaliśmy. Wówczas IDE podświetla dobrą linię ale w zakładce gdzie funkcję zdefiniowaliśmy, a nie gdzie źle użyliśmy funkcji. Jak trafi w jakąś przypadkową linię, wówczas komunikat błędu nie jest ani trochę pomocny. Wręcz przeciwnie.
W drugiej zakładce jest taki kod:
void setup() { Serial.begin(9600); int val = add_two(); Serial.println(val); } void loop() { }
I to tutaj w linii nr 3 jest miejsce które kompilator powinien wskazać. Czyli, próbujemy użyć add_two
jak funkcji zwracającej wartość:
int val = add_two()
Cały kod przykładu do zobaczenia tutaj: https://gist.github.com/netmaniac/cbff2b5e6476f52a9d7c
Jeden komentarz do “O co chodzi z 'void value not ignored as it ought to be’?”