im Setup platziere ich den Code der nach Neustart des Controllers einmalig ausgeführt wird - OK
im Loop programmiere ich den Code, der unendlich ausgeführt werden soll - OK
Vor dem Setup kann ich globale Variablen definieren, auf die von überall her zugegriffen werden kann - OK
Aber
Ich sehe öfters Codes, die irgendwelche boolsche Flags oder Werte/ Funktionen zwischen dem Setup() {} und dem Loop (){} stehen haben.
Warum?
Ist das ein spezieller Bereich oder ist alles was nicht im loop oder Setup, beziehungsweise alles was nicht in einer Funktion {} steht global?
Variablen außerhalb von Funktionen sind global, wobei es der Übersicht hilft, diese oben zu sammeln.
Für Funktionen ist es manchmal sinnvoll, sie vor ihrer Verwendung zu schreiben, da die IDE es nicht immer schafft, die Deklarationen oben richtig zu erzeugen.
Normalerweise müssen Dinge deklariert werden bevor man sie verwendet. Deshalb stehen die Sachen i.d.R. ganz oben. Je nach der Reihenfolge wie man das verwendet geht es auch später, aber das ist nicht sauber
loop() und setup() sind übrigens ganz normale Funktionen. Die werden lediglich automatisch aufgerufen. Aber letztlich ist das nur sowas in der Art: