Trotz zahlreicher Ähnlichkeiten gibt es subtile Unterschiede zwischen C und C. Dies wirft die Frage auf: Kann in beiden Sprachen gültiger Code immer noch unterschiedliche Ergebnisse liefern, wenn er mit ihren jeweiligen Standard-Compilern kompiliert wird?
Voraussetzungen für einen fairen Vergleich
Um einen aussagekräftigen Vergleich zu gewährleisten Im Vergleich legen wir bestimmte Bedingungen fest:
Eine Verhaltensungleichheit
Bedenken Sie den folgenden Code Ausschnitt:
#include <stdio.h> struct f { int x; }; int main() { f(); } int f() { return printf("hello"); }
In C führt dieser Code zu keiner Ausgabe, da ein temporäres f-Objekt erstellt und zerstört wird. In C90 wird jedoch „Hallo“ ausgegeben, da Funktionen ohne vorherige Deklaration aufgerufen werden können.
Diese Abweichung ergibt sich aus den unterschiedlichen Interpretationen von f() in C und C . In C wird f() als Funktionsaufruf behandelt, während es in C als Deklaration einer Struktur betrachtet wird.
Das obige ist der detaillierte Inhalt vonKann gültiger Code in C und C beim Kompilieren unterschiedliche Ausgaben erzeugen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!