|
Kann man in C auch objektorientiert programmieren. Aber nein, C ist keine OO-Sprache! Die OO hängt aber nicht an einer konkreten Sprache, sondern am wie. Man kann auch mithilfe Assembler Code realisieren, dem ein OO-Entwurf zugrunde liegt! Warum immernoch C und nicht C++: C ist näher am Maschinencode, bildet diesen direkter ab. Es gibt im Treiber-, Systemsoftware- und Embedded-Bereich genügend Stellen, wo man so etwas wie C oder vielleicht doch C++ braucht. Aber - C++ hat alle Nachteile von C, und in seiner OO-Ausprägung noch einige Nachteile zusätzlich. Man kann C auch als reine Implementierungssprache verstehen, als Zwischenglied zum Maschinencode ähnlich wie Assembler, den es in der Kette der C-Compilierung ja auch noch gibt. Dann wird mit UML OO betrieben und C generiert. Andererseit, wenn man sich für C ohne ++ entschieden hat, kann man mithilfe von struct und dazugehörigen Funktionen wie mit Klassenmethoden arbeiten. Eine einfach-Vererbung ist mit einer BasisStruktur am Anfang der Klassen-struct realisiert. Interfaces sind ähnlich den Sprungleisten implementierbar. Entweder man kann manuell mit einem solchen C mit OO-touch programmieren, oder dies ist die Ausführungsform eines generierten Codes, der lesbar ist. Damit ist nachvollziehbar, was auf dem Prozessor abläuft. Input kann dann UML mit Java sein. Die Seiten CRuntimeJavalike und Java2C widmen sich diesen Themen. |