Welcher Compiler für C ist empfehlenswert?

Hallo,
ich möchte gerne C lernen habe aber keinen blassen Schimmer welcher Compiler am geeignesten dafür wäre.
Ist es den auch möglich mit dem Microsoft Visual C++ 6.0 auch ganz normal C zu programmieren?
Merci.

MfG
Carsten

Hallo,
ich möchte gerne C lernen habe aber keinen blassen Schimmer
welcher Compiler am geeignesten dafür wäre.
Ist es den auch möglich mit dem Microsoft Visual C++ 6.0 auch
ganz normal C zu programmieren?
Merci.

Hallo Carsten,

ich habe ganz gute Erfahrungen mit dem Borland C Compilern gesammelt. Man kann auch einen C+±Compiler bei Borland kostenlos downloaden.
Grundsätzlich kann man mit Visual C++ 6.0 auch ganz normal in C programmieren (Konsolenanwendung), da C eigendlich eine echte Untermenge von C++ ist.
Wenn man aber gleichzeitig Funktionen benutzt, die insbesondere in iostream.h und stdio.h deklariert sind, so verhält sich Visual C++ teilweise fehlerhaft.
Bei Borland C++ sind diese Fehler (bei mir) noch nicht aufgetreten.

Gruß Frank :smile:

Moin,

ich möchte gerne C lernen habe aber keinen blassen Schimmer
welcher Compiler am geeignesten dafür wäre.

http://gcc.gnu.org/

Thorsten

Hallo,
ich möchte gerne C lernen habe aber keinen blassen Schimmer
welcher Compiler am geeignesten dafür wäre.
Ist es den auch möglich mit dem Microsoft Visual C++ 6.0 auch
ganz normal C zu programmieren?
Merci.

erstmal würde ich auf trotzdem ein C++ compiler verwenden, auch wenn du vorhast nur C zu programmieren. Schon allein, weil man mit einem C-Compiler keine Kommentare mit „//“ machen kann. Jedes C-Programm ist auch ein C++ Programm.

Am Anfang fand ich den Borland 3.0 Compiler am besten, erstmal weil ich damals nur Pascal konnte. Mit dem 3.0 kann man eigentlich ohne Aufwand einfache C-Programme schreiben ohne sich Gedanken über makefiles, projectfiles, etc zu machen. Einfach Datei->Neu, Source hinschreiben und Start.

Die Windows-Compiler BorlandC5 und MicrosoftVisualC sind schon besser, besonders weil sie keine 64kB-Grenzen kennen. Mit beiden kann man aber auch normale Konsolenanwendungen schreiben.
Wenn es nur um Konsolenanwendungen geht, würde ich Borland bevorzugen, bei VisualC wird man mit so vielen Features überschüttet, dass man als Anfänger schnell den Überblick verliert.

GNU-Compiler ohne IDE eignen sich auch ganz gut, man kann auch damit vernüftig arbeiten, nur etwas umständlicher, da man die Zeilennummern der Fehler selber im Texteditor suchen muss. Und mit den Debuggern ist das da auch so eine Sache…

cu
Steffen

Moin,

GNU-Compiler ohne IDE eignen sich auch ganz gut, man kann auch
damit vernüftig arbeiten, nur etwas umständlicher, da man die
Zeilennummern der Fehler selber im Texteditor suchen muss. Und
mit den Debuggern ist das da auch so eine Sache…

Das interessiert mich jetzt: Wie machen das die anderen?
Für gcc macht das mein Editor.

Thorsten

GNU-Compiler ohne IDE eignen sich auch ganz gut, man kann auch
damit vernüftig arbeiten, nur etwas umständlicher, da man die
Zeilennummern der Fehler selber im Texteditor suchen muss. Und
mit den Debuggern ist das da auch so eine Sache…

Das interessiert mich jetzt: Wie machen das die anderen?
Für gcc macht das mein Editor.

hmm, dann hab ich wohl immer die falschen Compiler erwischt. Meistens sind doch diese compiler ein Kommandozeilentool, man startet es am besten per batch-Datei, indem man den Dateinamen vom Quelltext übergibt. Bei mir gibt der Compiler per Standart-Ausgabe eine Fehlerliste zurück. Ja, da ich dann immer 0815-Textprogramme (wie Wordpad) zum Schreiben verwende, springt er bei mir nicht in die richtige Zeile - logisch, oder?
hehe, daran wirds wohl liegen - am Texteditor… :smile:

kein Wunder, ich verwende diese compiler (zum beispiel „cc“) nur um kleinere Windows-Programme für Linux zu portieren, also meistens ist der Source unter Windows als Konsolenapp schon fertig und nur die letzten Inkompatibelitäten werden angepasst.

Welchen „Texteditor“ verwendest du denn? Kann damit auch debuggen?
Ich glaub ich verpass was wenn ich „cc“ benutze, obwohl es mich nicht weiter stört, da ich selten damit arbeite…

cu
Steffen

Moin,

Für gcc macht das mein Editor.

Welchen „Texteditor“ verwendest du denn? Kann damit auch
debuggen?

Für Windows benutze ich UltraEdit. Du kannst den Compileraufruf auf eine Taste oder einen Button legen und die Ausgabe in ein Fenster umleiten; wenn Du dann auf die Fehlerzeile drückst, wird die entsprechende Stelle im Code angesprungen. Syntaxhighlighting etc. hat er natürlich auch.

Ich glaub ich verpass was wenn ich „cc“ benutze, obwohl es
mich nicht weiter stört, da ich selten damit arbeite…

Es kommt eben auf die Umgebung an. Ich frage mich nur, wie das Borlands cc besser machen soll.

Thorsten

Ich glaub ich verpass was wenn ich „cc“ benutze, obwohl es
mich nicht weiter stört, da ich selten damit arbeite…

Es kommt eben auf die Umgebung an. Ich frage mich nur, wie das
Borlands cc besser machen soll.

ich finde, die GNU-Sachen sind „schwieriger“ zu installieren. Wenn sie laufen is ja ok, aber meinstens muss man einpaar Sachen einstellen, was Ahnung von der Materie vorraussetzt.
Bei Borland machst du das Programm an und es funktioniert alles sofort.
Mag sein, dass du n anderes GNU hast, aber GNU setz ich meistens im Zusammenhang mit linux ein und da is die Installation für gewöhnlich immer etwas komplizierter…

cu
Steffen

Hi,

Mag sein, dass du n anderes GNU hast, aber GNU setz ich
meistens im Zusammenhang mit linux ein und da is die
Installation für gewöhnlich immer etwas komplizierter…

Ich verwende gcc/g++ (die gnu-compiler und nebenbei die Referenz-Compiler fuer C/C++ ueberhaupt) sowie make, emacs als editor und ddd als debugger. Das ganze allerdings auf Linux.
Auf Linux sind das alles Standardkomponenten und die Installation somit kein Problem.
Compilation starte aus Emacs. Der kriegt dann automatisch mit, in welchen Zeilen die Fehler sind und auf Tastendruck springt er im Quellcode automatisch zum naechsten oder vorigen Fehler. Alternativ kann man auch selbst in den entsprechenden Files auf die richtigen Zeilen gehen, dass ist allerdings umstaendlicher.
Gcc hat verschiedene debugging-optionen, die von ddd genutzt werden koennen. Fuer segfaults mache ich einfach mit ddd einen stack trace, fuer andere Sachen laesst sich der Code zeilenweise (oder in beliebigen „Brocken“) ausfuehren und Variable-Traces anschauen - auch von komplexen Datenstrukturen. Nur Variablen hinter Pointern sind ein wenig umstaendlich anzuzeigen, geht aber alles.
gcc/g++, make, emacs, ddd. Ausserdem benutze ich noch cvs und natuerlich kleinere shell-scripts. Das ist eine runde Sache, mit der professionell arbeiten laesst. Da bleiben keine Wuensche offen. Im gegensatz zu komerziellen Produkten ist wirklich alles ordentlich dokumentiert und wenn einem was nicht passt, schreibt mans um. Ach ja, bei den genannten tools habe ich noch keine Chrashs erlebt (obwohl ddd nicht ganz bugfrei ist).
Die Bedienung von dem ganzen Zeug ist natuerlich schwriger zu erlernen als bei grafischen Tools (nur ddd hat 'ne gui, und fuer cvs benutze ich ein grafisches Frontend). Dafuer kann man dann auch mehr damit machen, ich aergere mich nicht ueber bugs und kann immer mit Antworten rechnen, wenn ich im Netz eine Frage stelle.
Wie es mit gnu-zeug auf Win aussieht weiss ich allerdings nicht.

Gruss

Thorsten

Moin,

ich finde, die GNU-Sachen sind „schwieriger“ zu installieren.
Wenn sie laufen is ja ok, aber meinstens muss man einpaar
Sachen einstellen, was Ahnung von der Materie vorraussetzt.

Ich weiß nicht genau, was Du meinst, wer aber ohne Ahnung C programmiert, hat eh etwas nicht verstanden. Will sagen: Den Compiler zur Mitarbeit zu überreden, ist Teil des Lernprozesses.

Bei Borland machst du das Programm an und es funktioniert
alles sofort.

„Das Proramm“? Du meinst eine IDE?

Mag sein, dass du n anderes GNU hast, aber GNU setz ich
meistens im Zusammenhang mit linux ein und da is die
Installation für gewöhnlich immer etwas komplizierter…

Ich habe noch nie ein gcc unter Linux installiert, außer gleich bei der Installation von Linux. Probleme hatte ich dabei noch nicht.

Thorsten

Die Bedienung von dem ganzen Zeug ist natuerlich schwriger zu
erlernen als bei grafischen Tools (nur ddd hat 'ne gui, und
fuer cvs benutze ich ein grafisches Frontend). Dafuer kann man
dann auch mehr damit machen, ich aergere mich nicht ueber bugs
und kann immer mit Antworten rechnen, wenn ich im Netz eine
Frage stelle.
Wie es mit gnu-zeug auf Win aussieht weiss ich allerdings
nicht.

ich will jetzt kein Meinungskrieg zwischen Windows und Linux-Benutzern auslösen (die können wirklich lange dauern), mir tut da etwas der Carsten leid, der mit notify-mails überschüttet wird *g*
Aber Im Gegensatz zu deinen GNU-Programmen gibt es bei Borland oder MVC EIN Paket, man installiert es uns es funktioniert. Bei dir muss man erstmal rausfinden, welche Tools man dafür braucht und die muss man diese erstmal zum zusammenarbeiten bewegen, aber wenn etwas bei Linux erstmal richtig installiert ist, ist es besser als jedes Windows-Paket, besonders weil es eben mudular ist und erweitert werden kann.
Aber dass keine Wünsche offen bleiben glaub ich nicht so recht. MVC ist da wirklich sehr umfangreich. Genau die Features, die einen Anfänger verwirren lernt man zuschätzen, wenn man diese nach und nach rausfindet. Um ein Paar Features zu nennen: Grafische Übersicht der Klassen in einer Baumstruktur. Suchen und automatisches Einfügen von Methoden. Sehr viele Funktionen im Klassenassistent bezüglich programmierung von grafischen Oberflächen.
Für mich am wichtigsten: Automatisches Einrücken (als Eingabehilfe), natürlich Syntax-hilighting, man bekommt beim Debuggen den Wert einer Variable, wenn man mit dem Cursor draufzeigt. Eben diese kleinen Sachen. Sehr schön: beim Eingeben einer Klasse, gefolgt von „->“ oder „.“ popt eine Liste mit allen Methoden und Eigenschaften auf, man muss also die Namen der Methoden nicht genau wissen. Wenn man durch die Liste scrollt, blendet er zeilenweise die Kommentare ein, die man hinter der Definition gesetzt hat. Auch gibt es Funktionen wie beim Internet-Explorer, dass er halbgeschriebene Wörter „rät“. VisualC interpretiert den Source wärend dem Schreiben, wenn man zum Beispiel unten „void ausgabe() {“ hinschreibt, legt er sofort in der Klassenübersicht einen Eintrag mit „ausgabe“ an. Das gleiche wenn man Methoden in Klassen hinzufügt, etc
Alles Features an die man sich leicht gewöhnen kann… :smile:

cu
Steffen

Ich weiß nicht genau, was Du meinst, wer aber ohne Ahnung C
programmiert, hat eh etwas nicht verstanden. Will sagen: Den
Compiler zur Mitarbeit zu überreden, ist Teil des
Lernprozesses.

dann muss man als Anfänger aber nicht nur C lernen, sondern auch den Compiler. Es ist eben sehr frustrierend, wenn man nichtmal das Hallo-Welt-Beispiel aus seinem Buch zum Laufen bringt (mal als Beispiel). Da würde ich mir als Anfänger lieber ein Compiler suchen der unkompliziert ist. Wenn der irgendwann nicht reicht, muss man eben später umsteigen. Mit etwas Vorwissen kommt man mit komplexen Compilern dann auch wesendlich schneller zurecht.

Bei Borland machst du das Programm an und es funktioniert
alles sofort.

„Das Proramm“? Du meinst eine IDE?

Die IDE

Ich habe noch nie ein gcc unter Linux installiert, außer
gleich bei der Installation von Linux. Probleme hatte ich
dabei noch nicht.

mag sein, die Installation ist eigentlich nicht schwieriger wie bei jeder Linux Anwendung. Wenn man ein bischen Zeit dafür investiert funktioniert das auch.

Steffen

Hi Steffen,

Du hast natuerlich recht. Mein Posting sollte auch keine Aufforderung fuer Anfaenger sein, das genau so zu machen - ohne einen Ansprechpartner der neben demselben Rechner sitzt wuerde man da schnell untergehen.
Das Posting war eher an Dich gerichtet, da Du gesagt hattest, Du kenntest Dich da nicht richtig aus, wie denn der Thorsten (Haude) das machen wuerde.
Automatisches Einruecken und Syntax-Highlighting bietet Emacs natuerlich auch - und nicht nur fuer C/C++ sondern fuer alle gaengigen Sprachen. Das ist ein weiterer grosser Vorteil - egal ob ich C, Java, Tcl/Tk oder was weiss ich schreibe, ich benutze immer den selben Edito und muss mich nicht umgewoehnen. Das spart viel Zeit. Reicht schon, dass ich staendig den Syntax irgendwelche Lib-Funktionen nachschlagen muss (uebrigens fast alles im selben Format via man/info dokumentiert).
Ich habe auch mal mit Borland gearbeitet. Das erste was mich tierisch genervt hatte, war, dass ich erstmal eine ganze Platte freischaufeln musste umd das Teil zu installieren (schon etwas her, das Ding war pervers gross und Platten noch nicht anz so pervers gross). Und meiner Erfahrung nach dauert es nicht laenger, sich mit diversen kommandos und Tastaurkuerzeln vertraut zu machen, als sich durch die zig Menus eines Riesen wie Borland zu graben. Was nicht heisst, dass ich guis nicht zu schaetzen weiss. Doch je weniger Optionen eine gui bietet, desdo effektiver arbeitet man meiner Erfahrung damit. Und da ist das modulare Prinzip natuerlich wieder von grossem Vorteil.

Gruss

Thorsten

Dankeschön!!
Hallo,
beim durchlesen Eurer Statements untereinander ist mir zwar vor lauter Neuland fast schwindelig geworden, aber ich mach mich da nicht Bange.
Irgendwann werd ich´s schon noch kapieren, motiviert bin ich jedenfalls.
Werd jetzt erstmal den Borland5 ausprobieren, da ich den grad zuhause habe.
Vielen Dank jedenfalls für Eure Tipps.
Gibts denn irgendwo im WWW eine Seite wo man nützliches und wissenswertes zu dem Gebiet finden kann?

Ciao,
Carsten.

Hi,
ich kann das obige nicht 100 %ig bestätigen. Ich arbeite deutlich lieber mit dem Visual C++ 6 Compiler, als mit Borland, da Borland bei mir deutlich instabieler läuft. Außerdem finde ich die Projektverwaltung von Visual C deutlich besser, da man schneller und besser einen Überblick über seine ganzen Dateien und funktionen hat.

Wo ich zustimmen muß, daß viele Befehle von Borland nicht ohne weiteres unter Visual C laufen. Das liegt teilweise daran, daß Borland eigene spezielle Befehle hat, die nicht unbedingt C Standard sind. Das ist zumindest mein Wissensstand.
Was man allerdings beachten sollte. Ein großer Monitor mit hoher Auflösung ist hier zu empfehlen. Da ein großer Bereich des Monitors mit Fenstern zugeflastert ist ( die auch wirklich praktisch sind ) bleibt bei 1024x768 nicht mehr viel Platz für den Quelltext. Wenn Du aber den Platz hast, dann ist es echt genial.

Bis dann,
Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich kann Dir noch ne gute kostenlose C-Entwicklungsumgebung für Win nennen:

lcc-32

http://www.cs.virginia.edu/~lcc-win32

Sie erschlägt einen nicht mit Funktionen, bietet aber alles, was man für ein privates Projekt braucht:
Debugger, Syntax Highlightning (klar), Projektverwaltung…

Ist alles in allem einfach zu bedienen und sehr stabil, allerdings alles nur für C, nicht für C++.