Les écarts subtils de C par rapport à C
Bien qu'il soit largement admis que C est un sous-ensemble de C, un examen plus approfondi révèle des différences subtiles. Voici quelques cas où le code compilé en C rencontre des obstacles en C :
Aucune définition provisoire
En C, la redéfinition des variables est illégale, contrairement à C, où la les définitions permettent des redéfinitions ultérieures.
Type de tableau Incompatibilité
C fait la distinction entre les types de tableaux avec et sans tailles, rendant int[] et int[N] incompatibles. C, cependant, permet de les utiliser de manière interchangeable.
Syntaxe de la fonction K&R
C interdit le style K&R de définition de fonction où la liste des paramètres de fonction suit directement le type de retour .
Nested Struct Scope
C définit les structures imbriquées pour avoir une portée de classe, tandis que C adhère au comportement antérieur de la portée locale.
Default int
En C , en utilisant "auto" sans spécificateur de type explicite n'est pas valide, contrairement à C, où la valeur par défaut est int.
C99 supplémentaire Incompatibilités
C99 a introduit d'autres divergences :
Spécificateurs de dimension de tableau
C interdit les spécificateurs de déclaration dans les dimensions de tableau des paramètres de fonction, ce qui est autorisé en C.
Longueur variable Tableaux
C omet la prise en charge des tableaux de longueur variable, alors que C les autorise en déclarant des tableaux de tailles non constantes.
Membres de tableau flexibles
C manque de membres de tableau flexibles dans les structures, une fonctionnalité présente dans C.
Qualificateur de restriction
C introduit le qualificatif de restriction pour faciliter l'analyse d'alias, mais il n'est pas pris en charge 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!