huch?Zitat von SprinterSB
Naja egal, wie du trotz Compilerfehler schon richtig erkannt hast soll das eine Parameterübergabe mit globalen Variablen sein, oder kurz gesagt: ganz ganz böse![]()
nabend
interessant wie unterschiedlich die meinungen zu goto doch sind.
@sprinterSB: vielen dank, dass du dir überhaupt die mühe gemacht hast ein C tutorial zu schreiben, ich fand manches daraus sehr hilfreich am anfang !!!
zweitens danke für die antwort, jetzt verstehe ich die ganze problematik (werde jedoch trotzdem weiterhin munter "goto" verwenden ^^)
MfG maddin
huch?Zitat von SprinterSB
Naja egal, wie du trotz Compilerfehler schon richtig erkannt hast soll das eine Parameterübergabe mit globalen Variablen sein, oder kurz gesagt: ganz ganz böse![]()
So viele Treppen und so wenig Zeit!
[quote="Felix G"]Seh ich nicht so krass. Dort wo man in einer objektorientierten Sprache ein Singleton verwenden würde, ist in C doch ein globales Objekt in Ordnung. Oder?Zitat von SprinterSB
Und ohne Betriebssystem und ohne globale Objekte ist die Datenübergabe zwischen ISR und Applikation auch nicht ganz einfach...
Disclaimer: none. Sue me.
Ich habe bisher keinen (!) einzigen Fall erlebt, wo goto in C oder C++ Code erforderlich oder besonders nützlich war. Aber ich lasse mich gerne eines Besseren belehren, wenn man mir ein Beispiel zeigt.
Erstmal ein kleines Vorwort:
Ich entwickle seit 1972 Software (beruflich!!!). Die Diskussion um GOTO - ja oder nein habe ich also ziemlich heftig mitgemacht. Lang lang ists her...
Hintergrund der ganzen Sache (goto considered to be harmful):
Ende der 1960-er Jahre fand die berühmte NATO-Konferenz über die "Software-Krise" statt. Dijkstras Idee, goto möglichst zu vermeiden fand in der Folge viele Anhänger, die das Ganze dogmatisierten (ala "goto ist böse").
Nach einer sechsstelligen Anzahl geschriebener und einer sicher siebenstelligen Anzahl gelesener Lines Of Code denke ich inzwischen folgendermaßen über das Thema Software und Softwarestruktur:
Die folgenden Konstrukte reichen aus:
- Sequenz (Ein Statement nach dem Anderen)
- Abfrage (if then else bzw. switch)
- Schleife (for)
- Unterprogramm-Aufruf.
Wenn ein Stück Programm kompliziert wird, also der Programmierer z.B. einen "Breitwand-Fernseher" benötigt, um mit der Schachtelungstiefe noch klarzukommen, oder aus Verzweiflung zum GOTO übergeht, dann stimmt seine Logik nicht!!!
In einem solchen Fall wird es Zeit, das Problem noch einmal zu durchdenken und von oben bis unten - von den Anforderungen an bis zur Implementierung - auf den Prüfstand zu stellen. Der Zeitaufwand für ein derartiges Redesign ist bereits auf mittlere Sicht wesentlich geringer als der Aufwand für das Weiterverfolgen des komplizierten ersten Ansatzes.
Aber einmal geschriebene Software schmeißt man nicht so einfach auf die Mülle!
Unter der Folge - unergonomische Bananenprodukte - leiden alle:
- Der Anwender darf die Software-Fehler "heraustesten".
- Der Entwickler hat einen "Pflegefall" am Bein, der sich sehr schnell in eine "lebende Leiche" verwandelt
- Das Hersteller-Unternehmen ruiniert seinen Ruf (siehe "Winzweich")
Das waren meine paar Cent eigene Meinung und Erfahrung.
Schönen Sonntag noch!
Barny Geröllheimer
Hallo,
Im Zusammenhang mit der Prog.-Sprache 'C' (also wie in diesem Thread) und auch vielen anderen trifft das 'goto ist böse' bestimmt zu.
In einigen Prog.-Sprachen wie CCBaic lässt es sich dennoch oft nicht vermeiden, wenn zum Beispiel 'if-end-if-Blöcke' nicht erlaubt sind, und dadurch der Code durch "ums-goto-drumherumschreiben" ebenfalls sehr schwierig wird.
MfG
Tido
---------------------------------------------------
Have you tried turning it off and on again???
---------------------------------------------------
Lesezeichen