Seht diesen Wahnsinn:
enum WhatArduinoIs {
Easy, But, Insane, Obsolete, And, Far, Worse, Than, mBed
};
void TellMe(WhatArduinoIs pls) { }
void setup() { }
void loop() { }
Ich bin ziemlich gut in C ++, also bin ich mir ziemlich sicher, dass das kompiliert werden sollte. Ich erhalte jedoch diesen Fehler:
sketch_jan21b.ino:3:13: error: variable or field 'TellMe' declared void
sketch_jan21b.ino:3:13: error: 'WhatArduinoIs' was not declared in this scope
Error compiling.
Ich bin schon einmal auf die Neigung der Arduino "IDE" gestoßen, verrückte und völlig unrobustische Änderungen an Programmen vorzunehmen. Insbesondere wenn Sie #include
Bibliotheken verwenden, fügt Arduino die relevanten C ++ - Dateien nur dann magisch hinzu, wenn sich das #include
in Ihrer Hauptskizze befindet. #include <LiquidCrystal.h>
in einer anderen C ++ - Datei? Linkfehler.
Ich vermute in diesem Fall, dass Arduino auf magische Weise versucht, Funktionsdeklarationen am Anfang der Datei hinzuzufügen, damit ihre Reihenfolge keine Rolle spielt. Dh es verwandelt die Datei in Folgendes:
void TellMe(WhatArduinoIs pls);
enum WhatArduinoIs {
Easy, But, Insane, Obsolete, And, Far, Worse, Than, mBed
};
void TellMe(WhatArduinoIs pls) { }
void setup() { }
void loop() { }
Das funktioniert offensichtlich nicht. Wie kann ich Arduino sagen, dass er mein verdammtes Programm in Ruhe lassen soll?