Le code valide en C et C peut-il se comporter différemment lorsqu'il est compilé dans chaque langue ?
C et C partagent de nombreuses similitudes, mais certains codes les constructions peuvent produire des résultats différents lorsqu'elles sont compilées dans ces langages, même si le code est syntaxiquement valide dans les deux.
Appels de fonction vs. Déclarations d'objets
Un de ces scénarios implique des appels de fonction. En C90, les fonctions peuvent être appelées sans déclaration préalable. Cependant, en C , un objet de type f est créé lorsque f() est appelé sans déclaration.
Exemple de code :
Considérez le code suivant :
#include <stdio.h> struct f { int x; }; int main() { f(); } int f() { return printf("hello"); }
Comportement Différences :
Considérations sur la version :
Ce comportement la différence est spécifique au C90. Dans les versions ultérieures du standard C (par exemple C99), il n'est plus valide d'appeler des fonctions sans déclaration. En conséquence, le code se comporterait de la même manière en C et en C .
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!