Alle Basis für unsere C-Code, sehe ich jedes Makro folgendermaßen definiert:Warum nur ein Makro definieren, wenn es noch nicht definiert ist?
#ifndef BEEPTRIM_PITCH_RATE_DEGPS
#define BEEPTRIM_PITCH_RATE_DEGPS 0.2f
#endif
#ifndef BEEPTRIM_ROLL_RATE_DEGPS
#define BEEPTRIM_ROLL_RATE_DEGPS 0.2f
#endif
#ifndef FORCETRIMRELEASE_HOLD_TIME_MS
#define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f
#endif
#ifndef TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS
#define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f
#endif
Was ist der Grund diese definieren Kontrollen zu tun, die Makros, anstatt nur zu definieren?
#define BEEPTRIM_PITCH_RATE_DEGPS 0.2f
#define BEEPTRIM_ROLL_RATE_DEGPS 0.2f
#define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f
#define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f
Ich kann diese Praxis nirgends im Web erklärt finden.
Das Ändern von Konstanten an anderer Stelle im Code funktioniert garantiert auf diese Weise. Wenn irgendwo jemand anderes eines dieser Makros definiert, werden diese beim Prägen dieser Datei nicht vom Präprozessor überschrieben. –
Es ist ein Beispiel für das WET-Design-Prinzip. – stark
Gebe eine Antwort mit einem Beispiel an, versuche es zu kompilieren. –