bedingt.html | ||
Sprachen »de« en Benutzerkonto
|
Vergleiche und bedingte AnweisungenZahlen oder WörterVergleichsoperationen mit Zahlen sind im allgemeinen schneller als mit Wörtern. Beim Vergleich von Zahlen muss nur eine Instruktion ausgeführt werden. Beim Vergleich von Wörtern muss in einer Schleife jeder Buchstabe einzeln verglichen werden. Falls Zahlen im Sourcecode zu unübersichtlich sind ist es möglich mit #define Statements Wörtern Zahlen zuzuordnen. Damit kann der Programmierer im Programmcode Wörter benutzen. Der Preprocessor wandelt diese in entsprechende Zahlen um die dann in den Programmcode eingebettet werden. Ein Beispiel:
int operation;
Dies ist für den Compiler identisch zu folgendem code und somit viel schneller als ein Textvergleich mit strcmp(). Die Wörter DELETE,OPEN und RENAME werden noch vor der Kompilierung durch die Zahlen 1, 2 und 3 ersetzt.
int operation;
Reihenfolge der Optionen in switch()-statementsEin Beispiel:
int jahrgang;
Die switch() anweisung wird bei der ersten "break" Anweisung nach einem Treffer beendet. Es dauert also länger, alle Vergleiche bis zum letzten case-statement durchzugehen, als gleich beim ersten abzubrechen. Deshalb ist es im obigen Beispiel ratsam, häufig auftretende Jahreszahlen zuerst zu behandeln, und seltene erst später. Somit kann man manche unnötige Vergleichsoperation einsparen. Erwartet man also zur Laufzeit viele 1992er Jahrgänge und nur sehr wenige 1990er, so ist es ratsam obigen Code wie folgt umzuordnen:
int jahrgang;
if und else ifWerden mehrere if()-Statements nacheinander behandelt, von denen nur eines zutreffen kann, so ist es ratsam, für alle ausser dem ersten "else if" statt nur "if" zu verwenden. Somit werden unnötige Vergleiche verhindert nachdem eine erfüllte Bedingung gefunden wurde. Auch hier sollte auf die optimale Reihenfolge geachtet werden: Was häufiger zutrifft soll zuerst behandelt werden. © 2001 by Stefan Heimers |
Kürzlich geändert
Dieser Server (de) 2024-05-04 18:16:25 Defragmentieren (de) 2023-12-21 12:43:54 Vorverstärker (de) 2023-12-21 12:43:54 Sunday Webserver (de) 2023-12-21 12:43:54 Linker (de) 2023-12-21 12:43:54 Partitionieren (de) 2023-12-21 12:43:54 |