c++ kernel tutorial



  • Wie oft noch...?!
    Mir geht es nicht um die Unterschiede zwischen den Sprachen an sich sondern um den Unterschied in der Anwendung. Ich glaube wir reden bzw schreiben aneinander vorbei. Du meinst anscheinend was anderes als ich.



  • Und was genau verstehst du unter solchen "Unterschieden in der Anwendung"?



  • Es gibt keinen Unterschied in der Anwendung. Darum kann man ihn auch nicht erklären. C im Kernel verhält sich zu C++ im Kernel wie C in Anwendungsprogrammen zu C++ in Anwendungsprogrammen, unter den Einschränkungen, die hier längst genannt wurden (Exceptions, RTTI, ... gehen nicht out-of-the-box).

    Also nimm den C-Code, den Du findest, und bau daraus Klassen, wenn Du willst/wo es Sinn macht. C ist (wie auch schon geschrieben wurde), mehr oder weniger eine Untermenge von C++ (auch wieder mit ein paar Einschränkungen, vor allem im Fall von C99), sodass der meiste C code auch einfach läuft, wenn Du ihn als C++ kompilierst.

    Einzige Sache (die aber im Grunde auch nicht spezifisch fürs Schreiben von Kerneln ist), die man beachten muss: Wo Funktionen von Außen, also z.B. von Assembler-Code aufgerufen werden, ist es ratsam, diese Funktionen als extern "C" zu deklarieren, sonst muss man sich mit dem name-mangling des verwendeten Compilers auseinandersetzen.



  • Mit Anwendung meine ich zB wo es sinnvoll ist c++ zu verwenden (das will ich ja hauptsächlich) und wo man c verwenden sollte weil c++ dafür zu kompliziert oder ungeeignet ist. Ich möchte halt einfach anfangen und dann besser werden



  • Es ist überall angebracht C++ zu verwenden. So, jetzt bist du gut informiert.



  • ich glaube du hast meine frage nicht richtig verstanden.
    Egal, sonst werden hier noch mehr Posts ohne Inhalt erstellt.
    (wenn nicht von euch, dann von mir 😉 )
    Aber danke für die Links.



  • Was genau ist an "Es gibt nix, was man in C machen kann, das man nicht auch in C++ machen könnte" unklar?



  • Hier ist ein ziemlich realistischer Abriss warum Dinge nunmal so sind wie sie sind.
    http://www.yosefk.com/blog/oo-c-is-passable.html

    Da gibts für mich nicht viel hinzuzufügen,
    nur wer mal wirklich mit Flaschenhälsen kämpfen musste
    zb
    beim upload auf exotische Chips über exotische oder minimale Schnittstellen,
    beim kompilieren von mehr als 1 Target 1 Plattform 1 Konfiguration..

    Wird wirklich verstehen warum man manchmal mit mehr kämpfen muss
    als mit der Frage
    "Kann ich den OOP-Knüppel auch noch in die letzte Nische prüggeln in die sie nicht hingehört ?"



  • Die einzige Kritik an C++ im ganzen Artikel war "Compile-Time", und da muss ich ihm auch zustimmen, insbesondere g++ auf Windows ist einfach schrecklich. Aber: Was er da beschreibt (350MB RAM für ein File?) konnte ich noch nie beobachten. Ich hatte noch nie das Gefühl, dass man damit nicht mehr arbeiten könnte. Ansonsten würden mir doch wesentlich mehr Features an C++ fehlen, virtual halte ich gegenüber Templates und RAII schon fast für irrelevant.



  • g++ auf Windows ist einfach schrecklich

    Es gibt keinen Zwang, g++ zu verwenden. Kannst ja auch Clang nehmen (oder mit erhöhtem Schwierigkeitsgrad MSVC).


Anmelden zum Antworten