Exceptions au fait que C soit un sous-ensemble de C
Bien qu'il soit communément affirmé que C est un sous-ensemble de C, cette affirmation n'est pas entièrement exacte . Des différences apparaissent lors de la comparaison de versions spécifiques de C et C.
Différences C89 par rapport à C
-
Aucune définition provisoire : C ne le fait pas Ne permet pas de redéclarer des variables portant le même nom sans définition entre les deux.
-
Type de tableau différent Compatibilité : C fait la distinction entre les tableaux d'une taille spécifique (par exemple, int a[1]) et les tableaux de taille non spécifiée (par exemple, int (*ap)[]), alors que C leur permet d'être compatibles.
-
Pas de style de déclaration de fonction K&R : C nécessite une syntaxe différente pour les définitions de fonctions, interdisant l'ancien style K&R (par exemple, int b(a) int a; { }).
-
Différences de portée des structures imbriquées : En C , une structure imbriquée est traitée comme une déclaration au niveau de la classe, la rendant inaccessible en dehors de l'environnement englobant. struct.
-
Pas de type int par défaut : En C , les variables automatiques nécessitent des spécificateurs de type explicites, contrairement en C où int est supposé par défaut.
Différences C99 vs C
C99 introduit des écarts supplémentaires par rapport à la stricte compatibilité C :
-
Restrictions relatives aux dimensions du tableau : C99 interdit certains caractères spéciaux dans la spécification des dimensions du tableau de paramètres de la fonction.
-
Absence de tableaux de longueur variable : Les tableaux de longueur variable, déclarés à l'aide d'expressions non constantes comme tailles, ne sont pas pris en charge en C .
-
Aucun membre de tableau flexible : Les membres de tableau flexibles de C99, dont la taille peut être spécifiée au moment de l'exécution, sont incompatibles avec C99. .
-
Absence de qualificatif restrict : Le qualificatif restrict de C, utilisé à des fins d'optimisation, n'est pas disponible en C99.
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!