Einzelnen Beitrag anzeigen

Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#18

AW: Linus T. läuft Amok!

  Alt 6. Jan 2013, 11:30
Viel lustiger ist dieser Code, der aus einer der vorherigen Mails stammt

Code:
if (ctrl == NULL) {
  ret = -EINVAL;
  goto done;
}
Und ich dachte immer, 'goto' sei furchtbar böse.
Vergiss nicht: der Kernel ist in C geschrieben, da gibt es keine Exceptions oder try ... finally oder sowas. Das heißt, wenn man noch was aufräumen muss gibt es entweder die Möglichkeit mit einer Boolean-Variable und entsprechenden if-Bedingungen zu arbeiten oder man macht einfach ein goto . Ist vor allem im Betriebssystemumfeld recht gebräuchlich.

Im Free Pascal Compiler gibt es auch ein paar Gotos und vor einiger Zeit hab ich auch mal ein weiteres eingeführt (im Zusammenhang mit Generics), um ziemlich zum Anfang einer Funktion zurückzuspringen... Solange man Gotos nicht inflationär einsetzt, sondern nur an ausgewählten Stellen ist meiner Meinung nach nichts verwerfliches an ihnen und sie können die Lesbarkeit sogar erhöhen (aus ähnlichen Gründen bin ich auch ein Fan von absolute ).

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat