trotz längerer suche finde ich keine Antwort auf folgende Fragestellung.
Wie geht man mit geschweiften Klammern um, die in einer Präprozessoranweisung geöffnet werden, aber außerhalb geschlossen werden?
...funktioniert, obwohl es in meinen Augen falsch ist. Der Präprozessor geht ja nur in eine der beiden Anweisung und sollte auch nur eine öffnende geschweifte Klammer sehen.
Wie ist denn die richtige Syntax, bzw wie geht ihr damit um?
Aber wenn Sie kompilieren, sind Sie sicher, dass einer der beiden definiert ist? Andernfalls generiert der Präprozessor nichts, und Sie haben nur die schließende geschweifte Klammer, was ein Fehler ist.
Ja, bin ich sicher. Es ist nur für 2 verschiedene Boards vorgesehen. Zusätzlich verwenden eh alle nur die bereitgestellte .bin. Aber, ich möchte es halt einigermaßen sauber machen.
Die Abhängigkeit ist jetzt in der Parameterliste, wo sie auch hingehört. #defines entsorgt.
Zudem: Funktionen in *.h Dateien werden dir noch Probleme bereiten.
Ja, so hab ich es ja umgesetzt, es funktioniert ja auch. Ich bin nur wegen was Anderem den Code durchgegangen und hab mich gewundert, dass es so funktioniert.
Danke
Leider hab ich den Stream noch nicht verstanden. Wo ist denn bei deiner Lösung definiert, welche "art" von Serial er verwenden soll?
Der von dir zitierte Codeschnipsel war, wie vieles andere, irgendwo gefunden und auf meine Bedürfnisse angepasst. Später dann um den ESP32 erweitert. Ich weiß, muss noch viel sauber machen, läuft aber hervorragend.
Das sind die Probleme von Codeschnipseln. Die 2. geschweifte Klammer im Beispiel von @J-M-L gehört zum setup, und hat mit deinem Präprozessor Konstrukt gar nichts zu tun. Das scheint bei dir dasselbe zu sein:
Da gehört die 2. geschweifte Klammer offensichtlich auch zu einer weiter oben stehenden dazu, die man in deinem Schnipsel nicht sieht.
Du hast es geknackt, das war die Lösung!
Das Problem war gar nicht die Klammer, sondern die Darstellung in der IDE. Er markiert ja immer die öffnende Klammer wenn ich eine Schließende anklicke. Und mit der Klammer in der Präprozessordirektive kommt dieses Hervorhebewerkzeug nicht klar. Er hat mir also nur die falsche öffnende Klammer markiert und es war von Anfang an alles richtig. Danke
Trotzdem, das mit dem Stream würde mich interessieren. Wo gibts denn da was "einfaches" zu lesen?
Klar, die IDE weis nichts vom Präprozessor ..
Deshalb ist es sehr unübersichtlich, mit den #ifdefs Code-Blöcke zu zerhacken. ( Obwohl ich das auch schon gemacht habe ... )
5 allgemein gehaltene Zeilen reichen zumindest mir nicht um das Thema zu verstehen. Mein Wunsch war eher so ein bisschen Erklärung und mehrere Beispiele.