2017-02-11 28 views
0

Wie die Unterschiede zwischen der Syntax der verschiedenen Compiler der gleichen Programmiersprache zu kompensieren? Wie kann ich wissen, welcher Standard weltweit für Projekte verwendet wird? Zum Beispiel: Ich arbeitete 4 Monate auf Borland C++ - Compiler C++ zu lernen, aber jetzt sah ich die Syntax von Borland, Visual C++ und Entwickler C++ ist anders. Ich bin verwirrt, brauche etwas Anleitung ...Verschiedene Compiler, unterschiedliche Syntax

+2

Geben Sie ein Beispiel mit einer anderen Syntax an –

+0

Verwenden Sie bedingte Kompilierung: #ifdef, usw. – nicomp

+0

Nicht alle Compiler (z. B. Borland C++) unterstützen den aktuellen C++ - Standard. –

Antwort

1

Die erste Lösung ist, keine Teile zu verwenden, die für den einen oder anderen Compiler spezifisch sind. Bevor Sie ein Feature der Sprache verwenden, überprüfen Sie im Internet, ob es für einen Compiler spezifisch ist. Wenn ja, dann benutze es nicht.

Abgesehen davon ist die eigentliche Erstellung eines C/C++ - Programms, das von verschiedenen Compilern kompilierbar ist, eine Aufgabe, die Aufwand erfordert. Es passiert nicht "einfach nur", denn die Compiler haben ihre eigenen Eigenheiten, ihre eigene Unterstützung für den Standard usw. Selbst beim Schreiben von konformem C99/C++ 11-Code können Probleme auftreten. Eine Lösung besteht also darin, das Programm regelmäßig mit verschiedenen Compilern zu kompilieren (z. B. als Teil des Testens, bevor Code an das zentrale Repository übertragen wird) und sicherzustellen, dass alle den Code kompilieren können und die resultierende Software ausgeführt werden kann.

Wie für "Standard" Compiler, unter Linux und Mac gcc und clang kann als "Gold" betrachtet werden. Unter Windows sind die Compiler von Microsoft Standard.

+0

vielen Dank, du meinst Visual C++ ist Standard-Compiler-Rite NW arbeiten? –

+0

@AsimShehzad das hängt ganz davon ab, was Sie mit dem Code vorhaben. Wenn Sie Portabilität benötigen, entsprechen Sie einem C++ - Standard, der von den Compilern unterstützt wird, die für die unterstützten Systeme verfügbar sind, und fügen Sie implementierungsspezifische Wrapper hinzu, um die Unterschiede zu behandeln, die Sie benötigen. Wenn Portabilität kein Problem ist, können Sie eine bestimmte Compiler-Implementierung als Basis auswählen, aber bedenken Sie, dass Sie die Software nie portieren müssen. – user4581301

Verwandte Themen