Maison >développement back-end >C++ >Comment fonctionne l'initialisation partielle des structures et des tableaux en C et C ?

Comment fonctionne l'initialisation partielle des structures et des tableaux en C et C ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-24 08:40:19584parcourir

How Does Partial Initialization of Structures and Arrays Work in C and C  ?

Initialisation partielle des structures et tableaux automatiques en C et C

Initialisation partielle

En Dans les langages de programmation structurés comme C et C , les initialiseurs peuvent être utilisés pour attribuer des valeurs aux données membres au moment de la déclaration de l'objet. Cependant, contrairement au cas 1 de l'extrait de code fourni ci-dessous, où moins d'initialiseurs que le nombre de membres sont fournis, les normes ne définissent que deux types d'initialisation :

struct someStruct {
    int a;
    int b;
    int c;
};

// Partial Initialization
struct someStruct s = {123,};
// Complete Initialization
struct someStruct s = {123, 456, 789};

// No Initialization
struct someStruct s;

Règles d'initialisation partielle : de tableaux et de structures

En pratique, le terme « Initialisation partielle » est souvent utilisé pour décrire des situations comme dans le cas 1 ci-dessus, où les initialiseurs sont fournis uniquement pour un sous-ensemble de membres. Bien que les normes C et C ne fassent pas explicitement référence à l'initialisation partielle, elles définissent le comportement pour une initialisation complète et sans initialisation, les règles suivantes s'appliquant également à l'initialisation partielle :

  • Si un tableau ou structure est partiellement initialisée, tous les éléments non initialisés seront initialisés à zéro, quel que soit son type de stockage.
  • Ce comportement est garanti par la norme C99 (6.7.8.21) pour C et la norme C 03 (8.5.1 et 8.5) pour C .

Assurer la compatibilité

Pour assurer la compatibilité avec divers compilateurs, dont gcc/g , il est recommandé de suivre les règles standard lors de l'initialisation des structures et des tableaux, en évitant une initialisation partielle car cela pourrait conduire à un comportement inattendu.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn