C Programmiersprache lernen



  • Erstmals Hallo!
    Ich hoffe mein Anliegen liegt im richtigen Bereich.
    Undzwar möchte ich die Programmiersprache C lernen. Ich habe bereits Erfahrungen in C-Sharp, Delphi, PHP, Java. Nun da ich mich sehr für Hardware bzw Systemnahes programmieren interessiere, bin ich der überzeugung dass C die richtige Sprache dafür wäre.

    Mein Ziel ist es später einen Treiber für ein bestimmtes Gerät zu entwickeln. Aber dazu möchte ich erstmals die Sprache kennen.

    Damit ich beim Einstieg nichts Falsch machen will, benötige ich Erfahrungen/Tipps von Anderen die diese Sprache mächtig sind.

    Welches Buch würdet ihr mir empfehlen?
    Welcher Compiler/Editor ist eurer Meinung der Idiealste.

    LG
    fr4gz



  • Buch: C Programming Language
    http://www.amazon.de/Programming-Language-Prentice-Hall-Software/dp/0131103628/

    Compiler: Eigentlich egal, solange er mindestens C90 konform ist.
    Ich würde einfach gcc nehmen.
    http://gcc.gnu.org/

    Für Windows ist der im mingw Paket drin:
    http://www.mingw.org/

    Editor:
    Eclipse IDE for C/C++ Developers, 87 MB
    http://www.eclipse.org/downloads/

    Das liegt daran, weil in Eclipse der Debugger sehr gut integriert ist, der Nachteil ist halt, daß man Projektdateien anlegt und mit Makefiles kaum in Berührung kommt.

    Falls du für den Anfang aber auch ohne Debugger auskommst, empfehle ich Geany.
    Da kannst du dich auch gleich mit Makefiles austoben, weil der Editor hier nicht im Weg steht.
    http://www.geany.org/

    Später, falls du Lust hast, kann du dann noch Vim lernen.
    Von Visual Studio würde ich die Finger lassen.
    Denn erstens willst du ja Systemprogrammierung machen und daher vielleicht auch mal Microcontroller in C programmieren und zweitens, weil der C Compiler von VS total veraltet ist. C99 kann er z.b. schonmal nicht.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C (C89 und C99) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • K&R ist für Anfänger ungeeignet.
    Ich kann "C Primer Plus" empfehlen (englisch).
    Diverse insb. deutschsprachige Onlinebücher/Lehrgänge sind nicht zu empfehlen.
    Als IDE wäre CodeBlocks zu empfehlen, in der Windowsvariante auch mit integriertem GCC Compiler (MinGW) downloadbar.
    Du solltest dich bei der Auswahl der Bücher und des Compilers auf ANSI C (C89) konzentrieren, dann hast du mit deinem Code die größte Aussicht auf portablen Code für unterschiedliche Plattformen.


  • Mod

    Wutz schrieb:

    K&R ist für Anfänger ungeeignet.

    Für jemanden der sich reinhängt ist das schon ok. Und erst recht für jemanden der wie hier schon Erfahrung mit anderen Sprachen hat.



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

    Sie waren schließlich auch Systementwickler und setzen gerade deswegen viel aus diesem Bereich voraus.



  • 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.


Anmelden zum Antworten