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



  • 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