C von einem Hintergrund in C # lernen

8

Ich möchte meine Programmiererfahrung erweitern und dachte mir, dass das Lernen von C (nicht C ++) eine gute Idee wäre - ich habe ein Startprojekt (einige einfache 2D Spiele mit SDL ) und es gegeben, aber ich muss zugeben, ich kämpfe.

Jetzt betrachte ich mich selbst als einen sehr fähigen C # Entwickler, aber C ist nur eine komplett andere Welt!

  • Keine Namespaces.
  • Ohne Klassen kann ich meinen Code nicht strukturieren.
  • Ich verstehe Header-Dateien & amp; beinhaltet, aber meine Verwendung von ihnen scheint nicht ganz richtig.
  • Der Verlust von (zum Beispiel) der Klasse String ist ein bisschen ein Kulturschock.

Obendrein finde ich es schwierig, die C ++ - Information von den C-Informationen zu trennen (zum Beispiel ist snprint eine reine C ++ - Sache?)

Das hört sich nach einer seltsamen Anfrage an, aber gibt es irgendwelche guten Anleitungen zum Lernen von C, wenn Sie Erfahrung in anderen Sprachen haben?

    
Justin 23.10.2010, 04:14
quelle

5 Antworten

4

Versuchen Sie nicht, C von C ++ Büchern / Websites zu lernen. Beginnen Sie mit etwas, das nur auf C ausgerichtet ist. Ein großartiger Ort ist Die C-Programmiersprache . Es ist das Original und immer noch eines der besten Programmiersprachenbücher da draußen.

Learning C wird ein Kampf sein, weil es eine andere Art von Sprache ist. Es ist eine prozedurale Sprache, keine objektorientierte Sprache. Es wird gut sein, dein Gehirn zu strecken, wenn du es lernst. Sie werden wahrscheinlich auch viel mehr über die Funktionsweise Ihres Betriebssystems erfahren, da es viel näher am Metall liegt.

Beachten Sie auch, dass es eine viel weniger komplexe Sprache ist und daher viele der Feinheiten einer modernen Sprache fehlt. Es gibt kein BCL / .Net Framework. Wie Sie bemerkt haben, gibt es keine String-Klasse (obwohl es String-Funktionen gibt).

    
Steve Rowe 23.10.2010, 04:35
quelle
1

Ich würde dir empfehlen, mit einem Buch über C zu beginnen. Es ist keine gute Idee, eine neue Sprache im ständigen Vergleich mit einer vorherigen Sprache zu lernen. Du lernst schließlich, was anders ist und was nicht neu und einzigartig ist.

Schauen Sie sich das Buch von Kernighan und Ritchie oder Deitel & amp; Deitel. Sie werden beide zuerst als übermäßig basisch erscheinen, aber Sie werden mit einer viel solideren Kenntnis der Sprache enden.

edit : Ein Freund von mir hier schlägt vor, dass Sie auch etwas über Datenstrukturen und Algorithmen finden, nachdem Sie die Sprache verstanden haben, da Sie in einer Umgebung ohne Objekte arbeiten werden.

Ich hoffe, es hilft!

    
slezica 23.10.2010 04:33
quelle
0

Ich beantworte Ihnen die Frage, aber zuerst: Von C # zu C zu gehen ist wie von einer Plastikzahnbürste zu einer hölzernen ... Ich sehe keinen Vorteil.

Also:

Namespaces - Nein, in C gibt es keine. Dies ist eine C ++ / C # -Funktion. Sie sollten in der Lage sein, mit Präfixen zu kompensieren. (namespace_myClass).

Wie für Klassen, ich weiß nicht, wie ich Ihnen helfen kann. Ich bin ein C ++ - Programmierer (nicht C), aber C hat Struktur, obwohl ich nicht weiß, ob Sie Elementfunktionen haben können.

Header-Dateien und Includes sind syntaktisch identisch. Zum Beispiel:

%Vor%

gibt Ihnen Windows-Funktionalität. Beachten Sie, dass Sie möglicherweise Bibliotheken für viele Header-Dateien wie openGL verknüpfen müssen.

Und was werden wir ohne String tun? Sie könnten Ihre eigenen erstellen, oder Sie können C-Strings (char *) mit den C-Funktionen wie memcpy, ect ...

manuell verwalten

Lebewohl und guten Rutsch!

    
Alexander Rafferty 23.10.2010 04:37
quelle
0

C ++ ist eine Obermenge von C. Alles, was Sie in C tun können, können Sie in C ++ tun.

Ich denke, es ist eine gute Idee, C zu lernen. Es wird dich dazu bringen, mit Speicher- und Ressourcenmanagement umzugehen, strukturierte Programmierung vs. objektorientiert, und es hat auch eine viel kleinere Standardbibliothek (im Vergleich zu C #).

    
KSchmidt 23.10.2010 04:48
quelle
0

Ссылка

Ссылка

Ссылка

probiere die obigen Links

aus     
Vineel Kumar Reddy 23.10.2010 05:24
quelle

Tags und Links