Ein kürzlich aufgetretener Kompilierungsfehler beim Versuch, einen C-Code zu kompilieren, hat die Frage aufgeworfen, was der Standard-C-Standard ist bei Verwendung des g-Compilers. Der beteiligte Code umfasst Dateistream- und String-Manipulation. Beim Kompilieren mit dem Befehl „g example.cpp“ schlug die Kompilierung aufgrund von Fehlern bei der Konvertierung zwischen Zeichenfolgen und const char* fehl. Die Verwendung des Befehls „g -std=c 17 example.cpp“ löste das Problem jedoch.
Um den Standardstandard zu untersuchen, der von g verwendet wird, wenn das Flag -std nicht angegeben ist, wird eine Methode zur Bestimmung vorgestellt Standardversion des C-Standards, die von einer bestimmten Version von g unterstützt wird:
Bash: Führen Sie den folgenden Befehl aus:
g++ -dM -E -x c++ /dev/null | grep -F __cplusplus
PowerShell: Ausführen den folgenden Befehl:
g++ -dM -E -x c++ NUL | Select-String __cplusplus
Die Ausgabe dieser Befehle zeigt eine ähnliche Zeile an zu:
#define __cplusplus 199711L
Der Wert nach „__cplusplus“ gibt die Standard-C-Standardversion an. In diesem Beispiel ist es C 98 (199711).
Als Programmierer hängt die Entscheidung, ob oder immer das Flag -std angegeben wird, von mehreren Faktoren ab Faktoren:
Im Allgemeinen wird empfohlen, den C-Standard explizit mit dem Flag -std anzugeben, um unerwartetes Verhalten aufgrund von Impliziten zu vermeiden Standardeinstellungen. Durch die Kontrolle des C-Standards können Programmierer optimale Leistung, Code-Korrektheit und Portabilität sicherstellen.
Das obige ist der detaillierte Inhalt vonWelcher C-Standard verwendet g standardmäßig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!