C-Standarderkennung in g
In C kann die Standard-Compilerversion das Verhalten und die Kompatibilität Ihres Codes beeinflussen. Beim Kompilieren mit g ist das Verständnis des Standardstandards von entscheidender Bedeutung.
Beachten Sie den folgenden Codeausschnitt:
#include <fstream> #include <string> int main() { std::string filename = "input.txt"; std::ifstream in(filename); return 0; }
Wenn Sie diesen Code unter Windows mit dem Befehl g example.cpp kompilieren, kann dies der Fall sein Fehler aufgrund von Linkerfehlern im Zusammenhang mit der Konvertierung von std::string in const char*. Durch die Angabe eines bestimmten C-Standards mithilfe von g -std=c 17 example.cpp wird dieses Problem jedoch behoben.
Um den von g verwendeten Standard-C-Standard zu ermitteln, können Sie den folgenden Befehl ausführen:
g++ -dM -E -x c++ /dev/null | grep -F __cplusplus
Wenn Sie beispielsweise diesen Befehl auf der Ubuntu 4.8.4-Version von g verwenden, erhalten Sie die Ausgabe:
#define __cplusplus 199711L
Dies zeigt an, dass der Standard-C-Standard für diese Version von g C 98 ist ( 199711L stellt die Revision des C-Standards vom November 1997 dar).
Es wird empfohlen, beim Kompilieren mit g immer den gewünschten C-Standard explizit anzugeben. Dadurch wird sichergestellt, dass der Code dem vorgesehenen Standard entspricht und potenzielle Kompatibilitätsprobleme vermieden werden, die durch die Verwendung eines veralteten oder unerwünschten Standards entstehen können.
Das obige ist der detaillierte Inhalt vonWie bestimme ich den von g verwendeten Standard-C-Standard?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!