Zitat Zitat
Die Programmiersprache C++ bleibt ja immer die gleiche. Warum gibt es dann verschiedene Compiler (die einen sind kostenlos die anderen wieder nicht...)? Muss ich für jeden Compiler, ob Bloodshed, Borland etc. (die ja alle für C++ sind) etwas anderes, neues lernen? Worin besteht der Unterschied?
Warum gibt es verschiedene Textverarbeitungsprogramme? Weil jede Firma ein Stückchen vom Kuchen haben möchte. Genauso ists beim Compiler . Der Borland-Compiler (von dem ich allerdings NUR abraten kann. Ich muss gerade damit arbeiten, und das Ding ist wirklich alles andere als einfach oder standard-konform) wurde ja ursprünglich mit dem kostenpflichtigen C++ Builder, also Borlands C++ IDE ausgeliefert, genauso wie der MSVSCC (Microsoft Visual Studio C Compiler), der ja auch vorher nur Bestandteil von MSs IDE war. Intel hat auch einen eigenen Compiler, der natürlich die darunterliegende Architektur am besten kennt, und dementsprechend optimieren kann. Im Falle des GCC ist das anders, der wurde von Anfang an als freier Compiler entwickelt.

Der Unterschied liegt eigentlich nur im Detail. Die Compiler sind von der Anwendung her sehr unterschiedlich, ursprünglich halt auf die IDE zugeschnitten. Wenn du allerdings eine IDE verwendest, dürftest du davon nicht viel mitbekommen, zumindest am Anfang nicht. Auch ist die Implementierung eine andere, jeder Compiler optimiert seinen Code auf seine Weise.

Der gravierenste Unterschied liegt allerdings in der Implementierung der Bibliotheken. Microsoft und Borland haben viel eigenes Zeug zur Sprache und deren Bibliotheken hinzugefügt, die nicht so im Standard enthalten sind, und einem Programmierer oft das Leben schwer machen können. Viele Bibliotheken existieren bei anderen Compilern nicht, oder verhalten sich anders (beliebtes Beispiel: conio.h). Ein anderes Beispiel ist die Funktion strcat.

Im GCC:
Code:
char *strcat(char *dest, const char *src);
im Borland Compiler:
Code:
char _FAR * _CType _FARFUNC strcat(char _FAR *__dest, const char _FAR *__src);
Bei einfachen Tasks natürlich kein Problem, kann aber beim Schreiben eigener Bibliotheken durchaus zu Fehlern führen, ganz zu schweigen von der Unlesbarkeit.

Soviel dazu von mir
EDIT: Zu spät