C-Editor und C-Compiler

Status
Nicht offen für weitere Antworten.
B

Beni

Gast
Ich benutze DevC++, der ist angenehm klein und auch frei zu haben. Ob er sich für grössere Projekte eignet, vermag ich aber nicht zu sagen.
 

paedubucher

Aktives Mitglied
Es gibt für Eclipse auch C/C++ Plugins. Wenn du Eclipse onehin schon nutzt, dann ist das für dich sicherlich komfortabel.
 
G

Guest

Gast
Danke für eure Vorschläge.
Ich hab DevC++, Visual C Express und eclipse runtergeladen, und teste jetzt mal, was mir am besten gefällt.

Mfg
 
J

JAVA und C++ User

Gast
Vergiss DevC++ der is nur zum Lernen gut. Codeblocks ist da besser es dauert aber noch ne Weile bis zum nächsten Release. Finger weg von Eclipse und C++ kannste in die Tonne treten. Visual 2005 Express ist die beste Wahl für Dich, wunderbar schnell und unterstützt den Standard wunderbar und erzeugt schöne Binärys. Eine HelloWorld.exe mit 5 KB ist doch was oder????
 

norman

Top Contributor
JAVA und C++ User hat gesagt.:
Vergiss DevC++ der is nur zum Lernen gut. Codeblocks ist da besser es dauert aber noch ne Weile bis zum nächsten Release. Finger weg von Eclipse und C++ kannste in die Tonne treten. Visual 2005 Express ist die beste Wahl für Dich, wunderbar schnell und unterstützt den Standard wunderbar und erzeugt schöne Binärys. Eine HelloWorld.exe mit 5 KB ist doch was oder????
seit wann hängt die applikationsgröße denn mit dem entwicklungstool zusammen? :autsch:
 

0xdeadbeef

Top Contributor
Na ja, wenn alles in den 'zig Megabyte großen .NET Libraries steckt, dann ist die Exe natürlich klein. MFC kann man ja meines Wissens mit der kostenlosen Version von VisualC nicht mehr benutzen, geschweige denn statisch reinlinken.
Für kleine _autarke_ Windowsprogramme ist VisualC daher wohl eher nicht mehr geeignet.
In der Tat ist aber DevC++ auch nicht der wahre Jakob. Ich benutze es nur, wenn ich ab und zu mal ein kleines Konsolenprogramm in C schreibe/pflege. Da wäre VisualC mit Atomraketen auf Spatzen geschossen.
 
C

C++ schreiber

Gast
0xdeadbeef hat gesagt.:
Na ja, wenn alles in den 'zig Megabyte großen .NET Libraries steckt, dann ist die Exe natürlich klein. MFC kann man ja meines Wissens mit der kostenlosen Version von VisualC nicht mehr benutzen, geschweige denn statisch reinlinken.
Für kleine _autarke_ Windowsprogramme ist VisualC daher wohl eher nicht mehr geeignet.
In der Tat ist aber DevC++ auch nicht der wahre Jakob. Ich benutze es nur, wenn ich ab und zu mal ein kleines Konsolenprogramm in C schreibe/pflege. Da wäre VisualC mit Atomraketen auf Spatzen geschossen.

nene, die paar KB für ne HelloWorld EXE ist ohne .NET. Wir sprechen hier auch von C und nicht C++ oder C#.
 

0xdeadbeef

Top Contributor
Dann verstehe ich Deine Argumentation erst recht nicht. Habe vor zwei Wochen oder so mal wieder was in C gemacht und ein Programm mit 650 Zeilen - was ja doch etwas mehr ist als "Hello World" - braucht gerade mal 26kB als DevC++-Compilat (alles auf default). Ich wage jetzt mal zu bezweifeln, daß es mit VisualC wesentlich kleiner wird, wenn man alles statisch linkt - theoretisch kann man ja auch die C-Runtime als Dll benutzen. Eine ältere und einfachere Version des gleichen Programms war jedenfalls mit VisualC 7.0 kompiliert noch 44kb groß.

Davon abgesehen sind die Zeiten eh vorbei, in denen mir einer abgegangen ist, wenn mein Programm in ein KB gepaßt hat. In Zeiten von 250GB-Festplatten, 6MBit-DSL-Anschlüssen und 2GB RAM habe selbst ich alter Bitschinder es aufgegeben, auf ein paar KB zu schauen.

Was C++ angeht, ist der GCC (und damit DevCPP) halt bei höchster Optimierung sehr lahm beim Kompilieren - speziell wenn man noch sehr viel mit Templates arbeitet - und der erzeugte Code ist auch nicht so gut wie der von VisualC. Wobei sich da vielleicht mit dem neuesten GCC was getan hat - meine Erkenntnisse diesbezüglich sind schon etwas älter.

Also ich persönlich würde für komplexere C++-Programme bzw. solche mit Windows-Oberfläche VisualC nehmen und für kleine Konsolenprogramme in C den DevC++.
 

Strichaaa

Mitglied
Ich würde dir auf jedenfall empfehlen KEINEN C++ Compiler zu benutzen!
Die sind nämlich nicht sehr effizient, was C-Code angeht, oder zumindest sind C-Compiler effizienter.

Visual C++ ist zwar professionell, aber für plattformunabhängiges Programmieren kann man ihn afaik vergessen. Außerdem ein C++ Compiler ^^ Visual C (wie einige meiner Vorredner behaupteten) gibt es afaik nicht. Und Microsoft Produkte sind sowieso für ihr Widerstreben gegen Standart bekannt. Er kann zwar afaik den Standart, aber unterstützt auch alle anderen, üblen Stile.

Gnu ist gut, aber nimm dann auch den Gcc und nicht den G++, sonst haste wieder en C++ Compiler. ;)

Ansonsten kann ich dir noch lccwin32 wärmstens empfehlen, damit hab ich meine ersten Schritte getan und fand ihn auch immer total cool! Irgendwann bin ich dann auf C++ gewechselt. Für den Download einfach mal googlen.
 

0xdeadbeef

Top Contributor
Strichaaa hat gesagt.:
Ich würde dir auf jedenfall empfehlen KEINEN C++ Compiler zu benutzen!
Die sind nämlich nicht sehr effizient, was C-Code angeht, oder zumindest sind C-Compiler effizienter.
Das halte ich persönlich für Quatsch. C++ hat einen gewissen Overhead, wenn man Features wie Polymorphismus nutzt. Aber warum sollte ein C++-Compiler grundsätzlich schlechteren Code erzeugen?

Visual C++ ist zwar professionell, aber für plattformunabhängiges Programmieren kann man ihn afaik vergessen. Außerdem ein C++ Compiler ^^ Visual C (wie einige meiner Vorredner behaupteten) gibt es afaik nicht. Und Microsoft Produkte sind sowieso für ihr Widerstreben gegen Standart bekannt. Er kann zwar afaik den Standart, aber unterstützt auch alle anderen, üblen Stile.
Ohne jetzt auf Haarspaltereien und die Beharrlichkeit einzugehen, das einfache Wort "Standard" falsch zu schreiben: speziell die letzte Version erfüllt den ISO/Ansi-Standard vollständig. Es gibt allerdings ein paar Erweiterungen gegenüber dem Standard. Ob man das als positiv oder negativ wertet, sei mal dahingestellt. Jedenfalls ist das sicher kein Grund, den Compiler zu meiden. Und warum man mit dem MS Compiler grundsätzlich weniger gut plattformunabhängig programmieren können soll, wird wohl auch ein Rätsel bleiben. Wenn man z.B. Qt verwendet oder Konsolenprogramme schreibt, ist der Compiler völlig schnurz.
Nicht, daß ich jetzt unbedingt ein Gates-Fanboy bin - aber Ablehnung aus rein ideologischen Gründen mit Scheinargumenten zu untermauern, kann es ja auch nicht sein.

Gnu ist gut, aber nimm dann auch den Gcc und nicht den G++, sonst haste wieder en C++ Compiler. ;)
Bei einem normalen Aufruf entscheidet das der GCC ohnehin anhängig von der Endung automatisch.
Ansonsten siehe oben.


Ansonsten kann ich dir noch lccwin32 wärmstens empfehlen, damit hab ich meine ersten Schritte getan und fand ihn auch immer total cool! Irgendwann bin ich dann auf C++ gewechselt. Für den Download einfach mal googlen.
Nichts gegen den LCC, aber ein einzelner Entwickler kann halt nicht so ganz gegen riesige Mannschaften anderer Compiler anstinken. Außerdem macht er ja auch noch die IDE inklusive Ressourceneditor. Letztlich ist keines der Teile des Pakets so richtig zeitgemäß. Der Editor bzw. die IDE ist sogar ziemlich schrecklich aus heutiger Sicht. Das Projekt hat ja auch schon ein paar Jahre auf dem Buckel ohne nennenswerte Erweiterungen. Ich fürchte aber auch, daß der Compiler bereits gegen ältere Versionen von GCC alt aussieht, von Microsofts oder Intels Compilern wollen wir da mal lieber gar nicht anfangen.
 

Strichaaa

Mitglied
0xdeadbeef hat gesagt.:
Das halte ich persönlich für Quatsch. C++ hat einen gewissen Overhead, wenn man Features wie Polymorphismus nutzt. Aber warum sollte ein C++-Compiler grundsätzlich schlechteren Code erzeugen?

Dann kannst du mir ja sicher erklären, warum z.B. Programmierer in der Autoindustrie C benutzen und kein C++ und mir von eben diesen Entwicklern gesagt wurde, dass sie es machen, weil C-Compiler den Code effektiver umwandeln als C++-Compiler? Es ist bei Hardware naher Programmierung eben ein Unterschied, ob du 3 Zeilen Assembler am ende da stehen hast oder 30. Von mir kannst du meinetwegen behaupten, dass ich wenig Ahnung habe, aber von beruflichen Programmierern, die bei einer angesehenen und erfolgreichen Firma arbeiten... ich weiß nicht, wem soll man denn noch glauben, wenn nicht solchen Programmierern?


0xdeadbeef hat gesagt.:
speziell die letzte Version erfüllt den ISO/Ansi-Standard vollständig.

Ja, stimme ich dir zu, wobei ich das "speziell" weglassen würde und ich hab es ja auch geschrieben. Es geht mir nur darum, dass ich es nach wie vor blöd finde, dass ein void main(void) überhaupt zugelassen wird. Egal, ob int main(int argc, char* argv[]) auch funktioniert oder nicht, ich mag es nicht, wenn Programmierer gegen den Standart verstoßen. Wofür gibt es sonst solche Standarts? Dann kann man sie auch gleich weglassen! Sobald void main(void) von ANSI zum Standart erhoben wurde, da es so oft benutzt wird, bin ich zwar mit dieser Entscheidung nicht ganz einverstanden, jedoch werde ich nichts mehr gegen die Codezeile sagen.

0xdeadbeef hat gesagt.:
Es gibt allerdings ein paar Erweiterungen gegenüber dem Standard.
Naja, wenn der Standart etwas völlig anderes vorschreibt, ist es für mich keine Erweiterung, sondern ein Verstoß.

0xdeadbeef hat gesagt.:
Nichts gegen den LCC, aber ein einzelner Entwickler kann halt nicht so ganz gegen riesige Mannschaften anderer Compiler anstinken. Außerdem macht er ja auch noch die IDE inklusive Ressourceneditor. Letztlich ist keines der Teile des Pakets so richtig zeitgemäß. Der Editor bzw. die IDE ist sogar ziemlich schrecklich aus heutiger Sicht. Das Projekt hat ja auch schon ein paar Jahre auf dem Buckel ohne nennenswerte Erweiterungen. Ich fürchte aber auch, daß der Compiler bereits gegen ältere Versionen von GCC alt aussieht, von Microsofts oder Intels Compilern wollen wir da mal lieber gar nicht anfangen.

Naja, ich fand ihn immer Klasse, muss aber zugeben, dass ich ja schnell auf C++ gewechselt bin, von daher war es im Prinzip nur ein erster Eindruck... nichts desto trotzt wird er bei mir wieder installiert werden, denn ich werd wegen hardwareproggen wieder auf C umsteigen ^^
 

AlArenal

Top Contributor
Strichaaa hat gesagt.:
0xdeadbeef hat gesagt.:
Das halte ich persönlich für Quatsch. C++ hat einen gewissen Overhead, wenn man Features wie Polymorphismus nutzt. Aber warum sollte ein C++-Compiler grundsätzlich schlechteren Code erzeugen?

Dann kannst du mir ja sicher erklären, warum z.B. Programmierer in der Autoindustrie C benutzen und kein C++ und mir von eben diesen Entwicklern gesagt wurde, dass sie es machen, weil C-Compiler den C-Code effektiver umwandeln als C++-Compiler C++ Code? Es ist bei Hardware naher Programmierung eben ein Unterschied, ob du 3 Zeilen Assembler am ende da stehen hast oder 30. Von mir kannst du meinetwegen behaupten, dass ich wenig Ahnung habe, aber von beruflichen Programmierern, die bei einer angesehenen und erfolgreichen Firma arbeiten... ich weiß nicht, wem soll man denn noch glauben, wenn nicht solchen Programmierern?

Ich kenne persönlich kein Auto, das von einem 'normalen' PC mit 'normalem' Betriebssystem gesteuert wird und bei den in Autos eingesetzten Mikrocontrollern mag es derzeit gut möglich noch so sein, dass die Compiler für C besser optimieren, weil kaum einer C++ nutzt und da entsprechend herstellerseitig weniger getan wird. Analog dazu hält sich im wissenschaftlichen Bereich bei Großrechnern hartnäckig Fortran, weil die Libararies und Compiler jahrzehntelange Detailarbeit und Optimierung hinter sich haben.

Nur kannst du die Hardware in einem PKW und dessen Anforderungen und Rahmenbedingungen nicht mit denen eines normalen PC gleichsetzen.
 

Strichaaa

Mitglied
Bei Autos liegt das nicht nur (oder überhaupt nicht? so genau weiß ich es nicht) an der Optimierung, oder dass dafür nicht so viel getan würde, sondern eher an zwei anderen Gründen: Bei den bisherigen Leistungen der Compiler bräuchte man schnellere Prozessoren und afaik größere Speicher, was insgesamt nur unnötig Geld kosten würde. Außerdem will auch niemand wirklich C++ einsetzten, das die zusätzlichen Features wie z.B. OOP in der Hardware Programmierung nicht wirklich zum Einsatz kommen (würden) und nicht gebraucht werden.


AlArenal hat gesagt.:
Nur kannst du die Hardware in einem PKW und dessen Anforderungen und Rahmenbedingungen nicht mit denen eines normalen PC gleichsetzen.

Habe ich das getan? "Java Student" hat folgende Frage gestellt:

Java Student hat gesagt.:
Hi ich suche einen guten C-Editor und Compiler für WinXP. Wenn möglich in Deutsch, muss aber nicht sein. Mfg

Daraus kann man leider nicht entnehmen, für was er Programmieren will, und da er offensichtlich Student ist, ist es angesichts der Tatsache, dass er nicht nach C++ sondern nach C fragt, durchaus vorstellbar, dass er nicht FÜR Windows, sondern nur AUF Windows entwickeln möchte. FÜR was er entwickeln möchte, steht da nicht, und da C für Windows-Anwendungen eher selten benutzt wird, seit es C++ gibt, kann man auch auf die Idee kommen, dass er vielleicht für andere Dinge programmieren möchte.

Immerhin steht da, dass der Compiler für WinXP sein soll, das heißt für mich nur, dass es ein Compiler sein soll ,der auf Windows XP läuft. Das tun aber Compiler für Hardwareprogrammierung auch.
 

0xdeadbeef

Top Contributor
Dann kannst du mir ja sicher erklären, warum z.B. Programmierer in der Autoindustrie C benutzen und kein C++ und mir von eben diesen Entwicklern gesagt wurde, dass sie es machen, weil C-Compiler den Code effektiver umwandeln als C++-Compiler? Es ist bei Hardware naher Programmierung eben ein Unterschied, ob du 3 Zeilen Assembler am ende da stehen hast oder 30. Von mir kannst du meinetwegen behaupten, dass ich wenig Ahnung habe, aber von beruflichen Programmierern, die bei einer angesehenen und erfolgreichen Firma arbeiten... ich weiß nicht, wem soll man denn noch glauben, wenn nicht solchen Programmierern?
Du kennst solche Programmierer und ich bin einer ;) Und in der Tat benutzen wir da immer noch C. Würde nicht der Trend auf Kundenwunsch in eine andere Richtung gehen (modellbasierte Entwicklung), wäre es aber langsam an der Zeit, C gegen C++ zu tauschen, um zumindest einige Features zur Kapselung zu benutzen. Würde es nach mir gehen, hätten wir das schon vor ein paar Jahren gemacht: ich persönlich hätte es aber im wesentlichen bei der Verwendung von Klassen zur Kapselung gelassen und das kostet erstmal nichts. Setter/Getter kann man ja inline machen - kostet also auch nix. Als Bonus könnte man eine wesenltich strukturiertere Dokumentation machen, zumal Tools wie Doxygen eigentlich für OO gedacht sind.

Außerdem habe ich die Frage ja schon beantwortet: es geht nicht darum, welchen Compiler man verwendet, sondern welche Features man nutzt. Man kann in C++ ein Programm in reiner C-Syntax schreiben und über viele Zwischenstufen schließlich astreines OO-C++. Je nachdem ist der Overhead durch C++-Features größer oder kleiner - aber nicht weil der Compiler schlechter wäre.


Ja, stimme ich dir zu, wobei ich das "speziell" weglassen würde und ich hab es ja auch geschrieben. Es geht mir nur darum, dass ich es nach wie vor blöd finde, dass ein void main(void) überhaupt zugelassen wird. Egal, ob int main(int argc, char* argv[]) auch funktioniert oder nicht, ich mag es nicht, wenn Programmierer gegen den Standart verstoßen. Wofür gibt es sonst solche Standarts? Dann kann man sie auch gleich weglassen! Sobald void main(void) von ANSI zum Standart erhoben wurde, da es so oft benutzt wird, bin ich zwar mit dieser Entscheidung nicht ganz einverstanden, jedoch werde ich nichts mehr gegen die Codezeile sagen.
Mir ging es um vollständige Erfüllung des neuesten C++-Standards und da würde ich jetzt mal behaupten, daß viele Versionen davor den Standard nicht 100% umgesetzt haben. Ist halt auch etwas komplexer als der C-Standard.

Naja, wenn der Standart etwas völlig anderes vorschreibt, ist es für mich keine Erweiterung, sondern ein Verstoß.
Nein. 100%ige Erfüllung des Standards heißt nur, daß er vollständig umgesetzt wurde. Erweiterungen sind legitim, insbesondere wenn man sie abschalten kann. Wenn Du schon die Automobilindustrie anführst: praktisch jeder C-Compiler für Microcontroller hat Erweiterungen über den IOS/ANSI-Standard hinaus. Muß er teils auch haben (z.B. Bittypen bei C167 usw.). Trotzddem ist er natürlich standardkonform, solange er den Standard 100% umsetzt. Wir haben auch Compiler, die das nicht tun (für Peripherieprozessoren). Auch die haben ihre Berechtigung, nur kann man mit denen halt nicht alle zwingend vorgeschriebenen Sprachkonstrukte benutzen.

... nichts desto trotzt wird er bei mir wieder installiert werden, denn ich werd wegen hardwareproggen wieder auf C umsteigen ^^
C hat durchaus noch seine Berechtigung, vor allem im Embedded-Bereich. Auch Linus Torvalds zieht im Linux-Kernel ja C vor. Es gibt aber halt auch schwere Defizite in C: mich hat immer am meisten gestört, daß die Fehlerbehandlung ohne Exceptions ein Graus ist und daß es C schlicht an dynamischen Datentypen fehlt. Sachen wie Funktionen zum Anlegen und Sortieren von Listen praktisch immer neu schreiben. Auch Sachen wie Oberflächen sind ohne OO ziemlich schrecklich zu programmieren.
Habe aber wie gesagt auch noch ein paar olle C-Programme, an denen ich hier und da rumbastle. Für dieses Zwecke fand ich den DevC++ wesentlich besser als LCCWin. CodeBlocks sieht aber auch sehr gut aus - zumindest auf den Screenshots sieht der Editor etwas ausgereifter aus als der etwas primitive Editor von DevC++. Bin halt inzwischen von Eclipse verwöhnt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T C/C++ Editor Softwareentwicklung 6
B Suche Latex-Editor Softwareentwicklung 15
G Compiler-Bau Softwareentwicklung 5

Ähnliche Java Themen

Neue Themen


Oben