Wie lernt man C, wenn man bereits C++ kann?



  • shark schrieb:

    Die Programmiersprache C/C++ gibt es sehr wohl

    Naja, eigentlich gibt es eher Java/C#.

    Das dumme ist, daß man in C und in C++ sehr unterschiedlich programmieren *sollte*.

    Insbesondere beim genannten Augenkrebs kommt es immer wieder vor, daß jemand allergisch auf typische Problemlösungen in einer der beiden Sprachen ist aber nicht auf die in der anderen.



  • 314159265358979 schrieb:

    Wenn für euch ein zusammenhängendes Stück Speicher von gewollten Werten bereits OOP ist, okay...

    OOP ist eine Denkschule, die auf dem Konzept eines Objektes als eindeutig identifizierbare Entität, die sowohl einen Zustand (Daten/Attribute) als auch ein Verhalten (Methoden) aufweist, basiert. Ein zusammenhängendes Stück Speicher von Werten allein ist also noch keine OOP. Im "gewollt" liegt der Schlüssel. Verschiedenste (abstrakte) Konzepte in Form von einem Satz von Daten und Methoden, die auf diesen Daten arbeiten, auszudrücken und komplexe Systeme über die Interaktion von weniger komplexen Teilsystemen aus Instanzen solcher Formen zu verstehen. Das ist OOP. In einer Sprache deren Vokabular das Wörtchen class einschließt, fällt es natürlich leichter OO Gedanken auszudrücken. Aber für OOP ist die Verfügbarkeit von class genauso irrelevant wie das vorkommen von class in Code automatisch heißt, dass es sich um OOP handeln muss.



  • Okay, ich denke ich habs verstanden, danke 😉

    @volkard: Was willst du denn damit sagen? 😮



  • 314159265358979 schrieb:

    @volkard: Was willst du denn damit sagen? 😮

    Das ist volkards Art dir zu sagen, dass du doch mehr auf andere hören solltest.



  • Was lernt und das nun? 😕 NIX! 😞 Der Fragesteller möchte von C++ kommend sich mit der prozeduralen Programmierung von C vertraut machen. Kann nicht schaden - oder doch! 😃



  • icarus2 schrieb:

    PS:
    Ich habe mich bisher nur mit objektorientierten Sprachen auseinandergesetzt. Habe also keien Erfahrung mit prozeduraler Programmierung.

    Ich empfehle, auch in C objektorientiert zu programmieren.
    Damit gibt es fast gar keinen Bedarf, noch etwas zu lernen.
    Fast alles, was man vermißt, läßt sich leicht umschiffen.
    Man sollte wohl nicht versuchen, Sachen zu machen, die in C weh tun, zum Beispiel ein Framework bauen, das Exceptions nebst Stack-Unwinding emuliert, oder die stl nachbauen.

    Würde ich darüberhinaus versuchen, durch Lesen mein C zu verbessern, würde ich wohl MMIXWare (Don Knuth) nochmal aufmerksam lesen oder qmail und djbdns (djb). Würde ich aber nicht, sondern einfach drauflosarbeiten und wenn ich ratlos bin, frage ich wie immer hier.



  • @volkard
    Ich habe mir nun das Buch mal bestellt, da ich gerne ein Buch zum lesen und nachschlagen habe. Und die Taschenbuchversion ist nicht so teuer.
    Ich werde mir Muehe geben in C objektorientiert zu programmieren 😉

    Ich habe eine Frage zu C89 und C99:
    Nach welchem der beiden Standards sollte ich programmieren. Ich habe im Internet irgendwo gelesen, dass der C89 Standard breiter unterstuetzt wird als der C99 Standard. Was meint ihr dazu?
    Oder sollte man sich da gar nicht darauf festlegen?



  • C89, wenn deine Compiler oder die Compiler die den Quelltext übersetzen sollen fast gar nichts von C99 beherrschen. Sonst würde ich ein paar Sachen von C99 nutzen.

    Da du von C++ kommst, würde ich Sachen die in C++ und C99 funktionieren, nach C89 aber nicht, verwenden. Wenn dein Compiler dabei nicht mitspielt, Pech oder Compiler wechseln 🤡 Aber einen Compiler in einem grossen Projekt tauschen sollte sorgfältig geplant werden.

    Ausserdem wahrscheinlich werden sich die Compiler noch weiterentwickeln. Es sei denn C stirbt kurzfristig 🙄

    MfG f.-th.



  • icarus2 schrieb:

    @volkard
    Ich habe mir nun das Buch mal bestellt, da ich gerne ein Buch zum lesen und nachschlagen habe.

    Schätze, wenn Du MMIXWare meinst, solltest die Bestellung gleich wieder stornieren. Das ist gar nichts zum Nachschlagen, sondern nur zum einmal Durchlesen. Und es läßt sich, glaube ich, auch legal runterladen. Als Buch wohl nur gut, um am Strand und in der S-Bahn Coding-Spaß zu haben. Es ist nur ein größeres Programm ausgedruckt.

    icarus2 schrieb:

    Ich werde mir Muehe geben in C objektorientiert zu programmieren

    Knuth hat leider keine Zeit für Objektorientierung. Das wäre ja der Witz an diesem Code. Rückbesinnung.



  • @ f.-th
    Danke fuer die Info.

    @ volkard
    Ich meinte ich habe mir das Buch "The C Programming Language" bestellt. Haette mich da klarer ausdruecken sollen 🙂



  • icarus2 schrieb:

    Ich meinte ich habe mir das Buch "The C Programming Language" bestellt. Haette mich da klarer ausdruecken sollen 🙂

    lol, ja.
    Die Empfehlung kam von DirkB. Das "@volkard" und "das Buch" waren sehr verwirrend.

    Das K&R-Buch hat soweit ich weiß C-Schätzchen wie

    while(*dst++=*src++);
    

    drin.



  • volkard schrieb:

    Das K&R-Buch hat soweit ich weiß C-Schätzchen wie

    while(*dst++=*src++);
    

    drin.

    Was hast du denn? Ist doch wunderbar leserlicher und verstaendlicher Code 😃



  • icarus2 schrieb:

    Ich werde mir Muehe geben in C objektorientiert zu programmieren 😉

    Kann man machen, muss man aber nicht.



  • icarus2 schrieb:

    volkard schrieb:

    Das K&R-Buch hat soweit ich weiß C-Schätzchen wie

    while(*dst++=*src++);
    

    drin.

    Was hast du denn? Ist doch wunderbar leserlicher und verstaendlicher Code 😃

    Finde ich eigentlich auch relativ einfach und logisch.



  • Wenn es dich interessiert, schau dir doch einfach den Linux Kernel an (sind ja nur etwas über 14.5 Millionen Zeilen Code 😃 ). Der ist in C und objektbasiert/objektorientiert geschrieben.


Anmelden zum Antworten