Lors de l'initialisation d'une structure ou d'un tableau automatique avec moins d'initialiseurs que d'éléments, il est important de comprendre le comportement spécifié par les standards C et C.
Le standard C définit deux types d'initialisation pour les variables automatiques : initialisation complète et pas d'initialisation. L'initialisation partielle est un terme non standard qui fait référence à une situation dans laquelle seul un sous-ensemble d'éléments ou de membres est initialisé.
Norme C99
En C99, pour les tableaux et structures automatiques, s'il y a moins d'initialiseurs que d'éléments, les éléments restants sont initialisés implicitement de la même manière que objets avec une durée de stockage statique. Cela signifie qu'ils sont initialisés à 0 pour les types entiers.
Standard C 03
En C , pour les tableaux et structures automatiques, les membres non initialisés sont initialisés par valeur. Pour les types de classe, cela signifie appeler le constructeur par défaut. Pour les types intégrés comme int, cela signifie une initialisation nulle.
En C, initialisation d'un tableau automatique d'entiers avec une seule valeur, par exemple :
int arr[10] = {123,};
initialisera le premier élément à 123 et tous les éléments restants à 0, comme spécifié par le C standard.
La plupart des compilateurs grand public suivent les règles d'initialisation partielle spécifiées par les normes C et C. Cependant, pour garantir la compatibilité entre les différents compilateurs, il est recommandé d'initialiser explicitement tous les éléments ou membres.
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!