Hallo
In verschiedenen C/C+± Fachbüchern habe ich gelesen, es sollen möglichst keine „magic numbers“ verwendet werden.
Beispiel:
// schlecht?
toggleButton tglBtn[6];
// gut?
#define NUM\_OF\_TGL 6;
toggleButton tglBtn[NUM\_OF\_TGL];
// besser?
const int numOfTgl = 6;
toggleButton tglBtn[tglBtn];
// Am besten?
typdef enum lengthDefs{
eBtn = 8,
eTgl = 6,
etc.
} lengthDefs
toggleButton tglBtn[lengthDefs::eTgl];
Ich arbeite zur Zeit an einer C/C+± Applikation, die Motif als grafische Bibliothek und OCI als Anbindung an eine Oracle- Datenbank verwendet. Die Applikation wurde bereits erfolgreich von HPUX nach Red Hat Linux portiert. Verwendet wird ein GNU- Compiler der 3er- Reihe.
Eines der Probleme ist, dass die Applikation voll von „magic numbers“ ist.
Beispiel: :
// xyz.h
...
toggleButton tglBtn[6];
…
// xyz.C
…
for( i = 0; i
Was ich schlecht daran finde ist, dass ich im Header und in der C- Datei Anpassungen vornehmen muss um einen "Toggle Button" einzufügen.
Wie kann es besser gemacht werden. Ich dachte an "defines". Es soll aber Probleme geben können, betreffend Symboltabellengrösse des Compilers oder betreffend sinnlosen "Cross Dependencies". Ist da was dran?
Welche Lösung (define, const, enum) findet Ihr am besten? Eure Meinungen würden mich interessieren.
Vielen Dank.
Gruss, Olli