C lernen

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von Gonger96.

    Hi,

    Da ich mir eventuell eine neue Programmiersprache aneignen will, bin ich irgendwann auf c gekommen (über den Arduino Syntax). Jetzt habe ich mir vorgenommen c zu lernen. Sollte ich eher c oder c++ lernen? Meine Hauptfrage wäre: Könnt ihr aus eigener Erfahrung heraus ein gutes Buch hierfür empfehlen? Was sind Vorteile gegenüber VB.NET?

    8-) faxe1008 8-)
    Sagen wir es so: In C# gibt es solche Sachen wie:

    VB.NET-Quellcode

    1. Form2.Show()
    nicht mehr. Du lernst also richtiges Programmieren, da sowas nicht mehr ünterstützt wird, wie in VB.
    Ich würde dir C# raten, da dort der Aufbau ähnlich VB ist, also Windows Forms etc.
    Die Syntax in C mag für den einen leichter sein, als für den anderen. Mir gefällt die VB-Syntax besser. Zudem sind bestimmte Sachen, wie Treiberprogrammierung nur in C möglich. In VB kannste das vergessen. Die Sprache kann also auch mehr.

    Dieses Buch: amazon.de/b%C3%BCcher/dp/3866455291 würde ich dir raten.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    C++ ist Hardcore. Man kann im Prinzip alles machen, und grade deswegen kann man sich auch leicht selber reinreiten. Dafür hat man aber die volle Kontrolle.

    C# ist das, was Java hätte sein können/wollen. Es setzt auf die .NET-Plattform auf, behält aber eine C++-Syntax bei. C# ist wahrscheinlich einfacher, da einem viele Dinge abgenommen werden. Auch musst du nicht auf Speicherlecks achten (oder kaum).
    Ein Nachteil: Der Benutzer muss die .NET-Runtime installiert haben. Ab XP ist schon die 1.0 dabei, ansonsten fällt da ein ca. 20 MB-Download an.
    C# ist nicht komplett kompiliert, wird bei Programmstart nochmal übersetzt und hat gegenüber C++ ca. 5% Leistungsabfall. Das ist sowenig, das fällt kaum auf. Dafür bekommst du mächtige Grundklassen, die du in C++ selbst erst erstellen müsstest.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ja, ich würde dir C# zuerst raten. Vor allem wenn du VB.NET noch gewohnt bist!
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Trade schrieb:

    Dieses Buch: amazon.de/b%C3%BCcher/dp/3866455291 würde ich dir raten.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    ca. 5% Leistungsabfall.

    Nope, da ist gar kein Unterschied, da der JITer den Code speziell für den Prozessor übersetzten kann. (Steht zumindest in EDRs Buch)

    Zum Thema: C# ist eig. (fast) = VB.net, mit ein paar kleinen Unterschieden und dem Syntax. In C++ ist halt alles schwieriger, du musst zB. deine Objekte selbst entsorgen, etc. C# ist wesentlich schöner, aber der funktionsumfang wird kaum größer als der von VB.net. Eigentlich ist das keine komplett andere Programmiersprache, wer VB.net kann, kann in ein paar Tagen auch C#.
    Mfg
    Vincent

    Würde ich nicht behaupten.
    Wenn man VB falsch lernt, da wird das mit C# auch net so einfach...

    Weil "Form1.Show" gibt es nicht und es sollte auch in VB NIE so gemacht werden, wenn man es richtig gelernt hat.
    C# und VB.Net ist so ziemlich das selbe(nur andere Syntax). C/C++ sind native Sprachen. Ich würd dir zu C++ raten, dass ist eine OO Hochsprache. C dagegen ist nicht OO, du hast keine Klassen und das Ganze ist so oft unnötig kompliziert. In VS kann man C++, C und Assembler schön miteinander kombinieren so hat man mehr Möglichkeiten als in .Net vorallem Native (Treiber & Co) kannste machen. C# und C hat imho nicht allzu viel gemeinsam ausser deren Syntax, das sind 2 komplett unterschiedlich Dinge.

    Besonders nützlich ist auch die C++ Standard Bilbiothek inkl. STL. Sachen wie RegEx und die list<> stehen dir frei zur verfügung. Für GUI allerdings würd ich zu einem OO Wrapper raten, ob MFC o. ob du dir selber einen schreibst ist gaegal. Wichtig ist nur, dass das gaaaanz zuletzt kommt, die Sprache an sich solltest du schön mitner Konsole lernen.

    @VincentTB
    Solang du nichts aufm Heap allokierst musst du nichts wieder löschen. (Abgesehen von DC's etc)
    @n1nja
    Genau. Hab ich aber schon gesagt :P
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Wie meinst du? Ich mach es immer so:

    VB.NET-Quellcode

    1. Dim formbla As new Form2
    2. formbla.Show()
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich probier mich vielleicht doch gleich an c++ (wenn dann richtig :D )
    BTT:
    Habe gerade Studio aufgemacht und ne Konsolenanwendung erstellt und einfach printf in den Hauptsub reingeschrieben:

    C-Quellcode

    1. #include "stdafx.h"
    2. #include <stdio.h>
    3. int _tmain(int argc, _TCHAR* argv[])
    4. {
    5. printf("Test");
    6. return 0;
    7. }


    Fehler hierbei:

    Quellcode

    1. "ConsoleApplication2.exe" (Win32): "C:\Users\xxxxxxx\Documents\Visual Studio 2012\Projects\ConsoleApplication2\Debug\ConsoleApplication2.exe" geladen. Symbole wurden geladen.
    2. "ConsoleApplication2.exe" (Win32): "C:\Windows\SysWOW64\ntdll.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    3. "ConsoleApplication2.exe" (Win32): "C:\Program Files\AVAST Software\Avast\snxhk.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    4. "ConsoleApplication2.exe" (Win32): "C:\Windows\SysWOW64\kernel32.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    5. "ConsoleApplication2.exe" (Win32): "C:\Windows\SysWOW64\KernelBase.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    6. "ConsoleApplication2.exe" (Win32): "C:\Windows\SysWOW64\msvcr110d.dll" geladen. Symbole wurden geladen.
    7. Das Programm "[1708] ConsoleApplication2.exe" wurde mit Code 0 (0x0) beendet.

    8-) faxe1008 8-)