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
Antwort
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.
vielen Dank, du meinst Visual C++ ist Standard-Compiler-Rite NW arbeiten? –
@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
- 1. Warum verschiedene Versionen von .net (oder Compiler) erzeugen unterschiedliche Ausdrucksbäume für den gleichen Ausdruck
- 2. Unterschiedliche Altersberechnung für verschiedene Zeilen
- 3. Warum benötigt der Compiler eine komplizierte Syntax?
- 4. Matlab Plot verschiedene Farben für unterschiedliche Änderungs
- 5. Unterschiedliche Nr. von Clustern für verschiedene Datensätze
- 6. Erfordern verschiedene Perl-Versionen unterschiedliche CPAN-Modulinstallationen?
- 7. Unterschiedliche Sicherheit für verschiedene Dienstvorgänge in WCF
- 8. Werden verschiedene Java-Versionen unterschiedliche serialVersionUID erstellen?
- 9. Unterschiedliche Sicherheit für verschiedene Komponenten auf Xcelsius
- 10. Unterschiedliche Produkt-ID für verschiedene Kategorien erhalten
- 11. Haben verschiedene 68k-Simulatoren unterschiedliche TRAP-Aufgaben?
- 12. Verwenden Sie unterschiedliche Hervorhebungsfarbe für verschiedene ToolStripMenuItems
- 13. Verschiedene 9-Patch-Bilder für unterschiedliche Dichten?
- 14. Warum verwenden verschiedene Linux-Distributionen unterschiedliche Paketmanager?
- 15. iOS-Entwicklung verschiedene Benutzerberechtigungen erhalten unterschiedliche Funktionen
- 16. Wie man verschiedene Compiler-Optionen für verschiedene Compiler in cmake anwenden?
- 17. Welche Arten von Makros/Syntax Extensions/Compiler Plugins gibt es?
- 18. Bedeutet die unterschiedliche Syntax für NPM etwas Bestimmtes über Winkelpakete?
- 19. Boost binary_oarchive funktioniert für verschiedene Compiler unterschiedlich
- 20. Fortran DLL-Bibliotheken über verschiedene Fortran-Compiler
- 21. Werden Java-Compiler für verschiedene Gebietsschemas übersetzt?
- 22. LLVM als Basis-Compiler für verschiedene Sprachen
- 23. C#: Verschiedene Formen Syntax, wenn ein Ereignis
- 24. Verschiedene Syntax für Funktionen in Scala
- 25. Verwenden unterschiedliche Datenbanken unterschiedliche Namen?
- 26. Warum haben SQL INSERT- und UPDATE-Anweisungen unterschiedliche Syntax?
- 27. Wie unterschiedliche IDs erzeugen
- 28. Verschiedene Boost-Werte für verschiedene Indizes
- 29. Wie können verschiedene Protokolldateispeicherorte für unterschiedliche Einstellungen DRY konfiguriert werden?
- 30. Wie verschiedene Layouts für unterschiedliche Module in Zend Framework 3
Geben Sie ein Beispiel mit einer anderen Syntax an –
Verwenden Sie bedingte Kompilierung: #ifdef, usw. – nicomp
Nicht alle Compiler (z. B. Borland C++) unterstützen den aktuellen C++ - Standard. –