C Programmiersprache lernen



  • Ich würde dir eher C++ als C empfehlen, C++ ist objektorientiert und generisch, man kann damit aber auch genauso Hardwarenah programmieren wie in C. (Dafür ist C++ natürlich schwieriger zu erlernen)



  • Ignoriere ihn, das ist ein purer (und noch dazu relativ unwissender) C++-Programmierer, der manche Sachen noch nicht versteht, aber trotzdem generell anwendet (Move-Semantik, siehe C++-Forum), der Zeiger als Verweise bezeichnet und C als Untergruppe von C++ ansieht und folglich in aller Hinsicht als nutzlos abstempelt. Lass dich nicht davon verunsichern, ich kann dir getrost sagen: das ist völlig anders. (Und ich bin nicht sicher, ob gutes C wirklich einfacher zu erlernen ist.)



  • lanzenbrecher schrieb:

    der manche Sachen noch nicht versteht, aber trotzdem generell anwendet (Move-Semantik, siehe C++-Forum)

    Tue ich nicht, wie kommst du darauf?

    lanzenbrecher schrieb:

    der Zeiger als Verweise bezeichnet

    Zeiger sind keine Verweise, Zeiger sind Zeiger. Wo habe ich das jemals gesagt?

    lanzenbrecher schrieb:

    und C als Untergruppe von C++ ansieht und folglich in aller Hinsicht als nutzlos abstempelt.

    Nenne mir einen einzigen konkreten Fall, in dem C vorzüge gegenüber C++ hat.



  • streitet euch nicht darum, wer hier der obermacker im bereich C/C++ ist. jeder hat hier seine erfahrungen. Natürlich is richtig gutes C nicht viel leichter zu erlernen als C++, doch ist C++ als sprache nicht zu unterschätzen. Auch wenn
    laut mehreren Tutorials es immer wieder heißt, die lernmotivation sinkt bei
    keiner sprache schneller als bei C++ 😃

    Aber zurück zum Thema:

    So wie ich das jetzt gesehen habe, möchtest du vorab Hardwarenahe programmieren
    und auf schnickschnack von C++ (und den verbundenen komplikationen) verzichten.

    Wenn du vorerst nur auf die Grundlagen der C programmierung aus bist (was ja
    nicht viel anders als bei C# ist) so empfehle ich dir:
    "C Programmieren von Anfang an" von Helmut Erlenkötter

    Diese Buch hat mir mehrmals bei verständnisproblemen geholfen, wenn auch mancher
    Code darin keines wegs Visual Studio tauglich ist (Wie schon gesagt wurde, VS
    deren Compiler ist ein mist, zeigt bei dingen bei denen fehler sind nich mal ne
    Warnung geschweige eines fehlers)... dennoch verwende ich den VS, vorab wir in
    der Schule nur noch auf Windows 7 mit VS2010 arbeiten und es die weiterarbeit in
    der schule imens erleichtert, wenn ich die gleiche entwicklungsumgebung auch
    zuhause verwende.

    so, mission erfüllt: "Senf dazu gegeben!"



  • itedvo schrieb:

    (Wie schon gesagt wurde, VS
    deren Compiler ist ein mist, zeigt bei dingen bei denen fehler sind nich mal ne
    Warnung geschweige eines fehlers)

    Schwachfug. Die offensichtliche Tatsache, dass du nicht alle Optionen des MSC Compilers oder gar der IDE kennst oder/und zu interpretieren weisst, reicht bei weitem nicht aus, die Qualität zu bewerten. Die Compilerbauer besitzen mehr Sprachknowhow als du es jemals besitzen wirst.



  • orioon schrieb:

    Ich finde um K&R gut zu verstehen, ist es eher wichtig die technischen Hintergründe zu kennen, als Erfahrung im programmieren zu haben.

    Selbst die ANSI/ISO C Ausgabe (ANSI C1989 bzw. ISO C1990) von K&R enthält massenweise Altlasten, die man einem Anfänger so nicht mehr zumuten sollte. Das Buch ist nur noch von historischem Interesse.



  • Wutz schrieb:

    itedvo schrieb:

    (Wie schon gesagt wurde, VS
    deren Compiler ist ein mist, zeigt bei dingen bei denen fehler sind nich mal ne
    Warnung geschweige eines fehlers)

    Schwachfug. Die offensichtliche Tatsache, dass du nicht alle Optionen des MSC Compilers oder gar der IDE kennst oder/und zu interpretieren weisst, reicht bei weitem nicht aus, die Qualität zu bewerten. Die Compilerbauer besitzen mehr Sprachknowhow als du es jemals besitzen wirst.

    das will ich mal sehen =b ich will ganz nach oben, nur desto steiler der weg,
    umso tiefer und schneller fällt man...

    vieleicht besitze ich jetzt nicht die qualifikationen um so was so prezise zu bewerten wie du es vieleicht zu können scheinst, doch eines weiß ich, der
    compiler funktioniert nicht so wie er sollte. und das bei mehreren beispielen die uns die professoren zeigten und ich an eigenen beispielen erlebt habe (Wart
    ich kram dir mal was aus wenn ichs finde). daher misst, doch was solls, micro-
    soft gibt die betriebssystem billiger, die Entwicklungsumgebungen billiger,
    da muss die schule doch dort kaufen weil an jedem ecken das geld fehlt. du magst
    zwar einige positive erlebnisse mit VS gehabt zu haben, ich zwar auch, doch
    die negativen reihen sich zu ner front auf.



  • Und du bist dir sicher, dass du den MSVC richtig verwendet hast, weil C++ code sollte der richtig eingestellt nicht kompilieren, und sonst bei allem was in C++ so erlaubt ist meckern.



  • ich kann mich zwar irren (fehler sind immer noch menschlich und erlaubt) aber
    nach dem ich meinen compiler vom professor einstellen hab lassen und
    gleichzeitig im internet nach einstellmöglichkeiten gesucht habe und diese nicht
    von denen des professors abweichen, bin ich mir sicher das es richtig einge-
    stellt ist. Ok, kann sein das ich was übersehen habe, aber ich befasse mich
    jetzt seit einigen jahren mit dem VS und kontrolliere immer wieder mal die ein-
    stellungen, da ich ja mal was übersehen haben könnte, doch gefunden hab ich noch
    nichts.

    falls ihr meint der professor hat schwachsinn eingestellt und internet lügt
    (worauf ich zum teil meinen namen verwetten würde) dann zeigt mir doch mal ne
    seite auf der wirklich wahrheitsgetreu steht was der VS compiler braucht und was
    nicht. wenns geht auf english, denn ich hab VS auf english eingestellt...



  • In den Projekteinstellungen unter C/C++ -> Erweitert -> Kompilierungsart kannst du auf C oder C++ einstellen. Standard bedeutet, dass er nach den Dateiendungen geht. Also heißt die Dateiendung .c , dann nimmt er C bei Endung .cpp nimmt er C++.



  • itedvo schrieb:

    ich kann mich zwar irren (fehler sind immer noch menschlich und erlaubt) aber
    nach dem ich meinen compiler vom professor einstellen hab lassen und
    gleichzeitig im internet nach einstellmöglichkeiten gesucht habe und diese nicht
    von denen des professors abweichen, bin ich mir sicher das es richtig einge-
    stellt ist.

    Das hat nichts zu sagen.
    Mein Professor, der viel Ahnung von Computergrafik hat, weiß z.B. nicht, daß es in Windows (und anderen Betriebssystemen) Umgebungsvariablen wie z.B. %TEMP% usw. gibt.



  • Deine Prof.-Gläubigkeit sei dir als Student nachgesehen, es gibt aber auch noch ein Leben außerhalb der Uni und vielleicht kommst du ja damit auch mal in Berührung.
    Dass Professoren durchaus auch öffentlich ihren Pfusch verbreiten (nicht nur intern) lässt sich z.B. auch bei diesem Herrn genüsslich nachlesen, etwa ein Niveau mit Herrn J.Wolf:

    http://www2.f1.htw-berlin.de/scheibl/c/index.htm

    Wenn du denn die Fehler des MS Compilers so genau kennst, dann schreibe doch mal einen Testfall dafür und veröffentliche dieses hier im Forum. Ich bin mir sicher, dass dabei dann nicht der Compiler "schuld" ist, sondern eher:
    - deine eingestellten Compiler-Optionen, defines usw... bzw. deine Unkenntnis dieser
    - deine Testumgebung, IDE-Konfiguration, Betriebssystem-Umgebung
    - deine Unkenntnis von Spezialitäten im Sprachstandard
    - deine Unkenntnis von Spezialitäten in der Standardbibliothek
    - die Verwendung von Nichtstandardbibliotheken und die fehlerhafte Bedienung bzw. die Fehler dieser
    - ...

    Ich selbst habe jedenfalls noch keinen Fehler in diesem Compiler und seinen Vorgängerversionen entdeckt und ich verwende ihn schon viele Jahre.



  • Man muß hier aber beachten:

    Wutz arbeitet meines Wissens nach für und bei Microsoft, daher ist seine Empfehlung VS zu nehmen mit vorsicht zu geniesen.



  • ok, was wolf betrifft, scheint er wirklich eine merkwürdige art und weise zu
    haben sich auszudrücken. er scheint einfach kein geeigneter schriftsteller zu
    sein ^^
    ja, ich kram mir mal die beispiele raus. ach ja, für deine entgegnung: leider
    ist unser schulsystem nicht gerade super aufgebaut, so muss zum beispiel jeder
    Professor fürs unterrichten jeglichen Schulstoff den er unterrichten möchte,
    selber schreiben. war bis vor kurzem ja eigentlich kein problem, doch jetzt
    kommt die standard-matura. sprich: alle schulen bieten die gleiche matura mit gleichen prüfungsfragen. nur frage ich mich, wie das gehen soll, wenn der staat
    keine einheitlichen lehrmittel zur verfügung stellt. irgendwas ist faul im
    staate dänemark und desswegen bin ich hier beim forum um nicht an dieser schule
    zu verblöden.



  • Die bisherige Diskussion hilft dem Fragesteller wenig weiter. Ich fasse mal zusammen:
    - Es soll systemnah programmiert werden, evtl. für verschiedene Platformen und Systeme
    - Microcontroller kommen ggfs. auch in Frage
    - Gesucht sind die notwendigen Grundlagen für systemnahes Programmieren

    Da ist wie ich meine C besser als C++, auch wenn das pure C hier oft als vollkommen veraltet oder sogar als überflüssig angesehen wird. Wahrscheinlich musst du zum Lernen auf ältere Bücher zurückgreifen. Ob es gerade K & R sein muss bezweifel ich, kann aber zum Verständnis nützlich sein.

    Der Compiler und die IDE sind zum Lernen deiner Ziele weitgehend egal. Nimm möglichst etwas portables und behalte die Portabilität beim Programmieren im Kopf. Es kann durchaus ein C++ Compiler sein, denn der unterstützt auch das reine C.

    So, das war jetzt auch mein Senf. Eine Puralismusdiskussion erscheint mir hier fehl am Platz!



  • berniebutt schrieb:

    Wahrscheinlich musst du zum Lernen auf ältere Bücher zurückgreifen. Ob es gerade K & R sein muss bezweifel ich, kann aber zum Verständnis nützlich sein.

    Ich finde die Frage ziemlich interessant, weshalb bisher niemand eine Empfehlung für ein aktuelles (darunter verstehe ich ein Buch, daß Bezug auf ISO 9899:1999+Cor1:2001+Cor2:2004+Cor3:2007 nimmt) C Buch gemacht hat. Ich habe noch mit K&R 2. Auflage C gelernt, und erst später gelernt wo die Schwächen dieses Buches sind. C hat sich von ISO 9899:1990 zu ISO 9899:2007 stark gewandelt. Ist C mittlerweile so unbedeutend, daß es niemand für notwendig hält ein aktuelles Buch zu verfassen? Das kann ich nicht glauben.



  • ~john schrieb:

    Ist C mittlerweile so unbedeutend, daß es niemand für notwendig hält ein aktuelles Buch zu verfassen? Das kann ich nicht glauben.

    Auch ich habe mit K&R und einigen weiteren meist englischsprachigen Büchern mir seinerzeit (1980er Jahre für UNIX) C angeeignet und bin damit von FORTRAN kommend gut klargemommen. Diese Bücher erscheinen mir für die Grundlagen von C immer noch aktuell, nur leider habe ich sie nicht mehr und kann so keine Titel empfehlen und weiss auch nicht, ob sie noch verfügbar sind.

    Neuere Bücher satteln meist auf den hinzugekommenen Erweiterungen (C++ und fertige Klassenbibliotheken) auf. Wer schreibt also wieder ein Buch wie wir beide uns das vorstellen oder vertreibt noch die alten Bücher? Für die präzisen Beschreibungen der Compiler braucht man erst einen soliden Einstieg und ein gewisses Grundverständnis. Genau das will und braucht doch der Fragesteller!


Anmelden zum Antworten