Maison > Article > développement back-end > Un code valide en C et en C peut-il produire une sortie différente une fois compilé ?
Malgré de nombreuses similitudes, il existe des différences subtiles entre C et C . Cela soulève la question : un code valide dans les deux langages peut-il encore produire des résultats différents lorsqu'il est compilé avec leurs compilateurs standards respectifs ?
Conditions préalables à une comparaison équitable
Pour assurer une comparaison significative comparaison, établissons certaines conditions :
Une disparité comportementale
Considérez l'extrait de code suivant :
#include <stdio.h> struct f { int x; }; int main() { f(); } int f() { return printf("hello"); }
En C , ce code n'entraînera aucune sortie, car un objet f temporaire est créé et détruit. Cependant, en C90, il affichera "bonjour" car les fonctions peuvent être invoquées sans déclaration préalable.
Cette variance résulte des interprétations distinctes de f() en C et C . En C, f() est traité comme un appel de fonction, tandis qu'en C , il est considéré comme une déclaration d'une structure.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!