Recommandé, 2020

Choix De L'Éditeur

Différence entre définition et déclaration

Définition et Déclaration sont des termes très déroutants si vous débutez en programmation. Les deux concepts sont différents à certains égards car la définition implique l’affectation de mémoire aux variables alors que dans la déclaration, la mémoire n’est pas allouée. La déclaration peut être faite plus d'une fois, à l'inverse, une entité peut être définie exactement une fois dans un programme.

La définition est automatiquement une déclaration dans la plupart des scénarios. Maintenant, comprenons la différence entre définition et déclaration avec le tableau de comparaison détaillé.

Tableau de comparaison

Base de comparaisonDéfinitionDéclaration
De baseDétermine la valeur stockée dans une variable, une fonction ou une classe.Spécifie le nom et le type de variable, fonction, classe, etc.
Allocation de mémoireSe produitN'a pas lieu.
RépétitionLes instructions ne peuvent pas être définies à nouveau si elles sont déjà définies.La redéclaration peut être facilement possible.
PortéeLa durée est déterminéeLa visibilité est spécifiée

Définition de définition

La définition identifie le code ou les données associés au nom de la variable, de la fonction, de la classe, etc. Le compilateur a nécessairement besoin de la définition pour allouer l’espace de stockage de l’entité déclarée. Lorsqu'une variable est définie, elle contient une quantité de mémoire constituée de plusieurs octets pour cette variable. Une définition de fonction produit un code pour la fonction. Nous pouvons définir un élément de programme une seule fois dans un programme car la définition est une spécification unique d'un élément de programme. La relation entre déclaration et définition peut être un à plusieurs .

Dans certaines situations, un élément de programme ne peut pas être défini mais déclaré, par exemple lorsqu'une fonction n'est jamais appelée ou que son adresse n'est jamais utilisée, même si elle est déclarée. Un autre exemple est celui dans lequel la définition de classe n'est pas utilisée alors qu'elle doit être déclarée.

Définition de déclaration

La déclaration est utilisée pour spécifier les noms du programme, tels que le nom d'une variable, une fonction, un espace de noms, des classes, etc. Aucun nom ne peut être utilisé dans un programme sans sa déclaration. Les éléments de programme peuvent être déclarés plusieurs fois, contrairement à définition. Les déclarations multiples ne peuvent être obtenues que lorsque les différentes déclarations sont faites en utilisant le même format. La déclaration est le moyen de donner de la visibilité à l'élément de programme dans la perspective des compilateurs.

La déclaration sert à la définition, seulement dans certains cas, la condition qui n’est pas implicite et qui est donnée ci-dessous.

  • Lorsque le membre de données statique est déclaré dans une déclaration de classe, dans ce cas, il ne s'agit pas d'une déclaration. Dans la mesure où il génère une seule copie pour tous les objets de la classe et que les membres de données statiques sont les composants des objets d'un type de classe fourni.
  • Si une déclaration est une déclaration typedef.
  • Une variable est déclarée sans initialiseur ni corps de fonction mais inclut des spécificateurs externes. Il indique que la définition pourrait concerner l'autre fonction et fournit le nom de liaison externe.
  • La déclaration du nom de classe sans inclure la définition telle que la classe T;

Habituellement, la déclaration a lieu dans une étendue . L'étendue décide de la visibilité du nom déclaré et de la durée de l'objet défini.

Différences clés entre définition et déclaration

  1. La définition d'un élément de programme détermine la valeur associée à cet élément. D'autre part, la déclaration d'un élément de programme spécifie son nom et son type pour le compilateur.
  2. La définition de l'élément de programme réserve une certaine quantité de mémoire alors que la déclaration n'implique aucune allocation de mémoire.
  3. Un élément de programme peut être déclaré plusieurs fois. Inversement, la définition incorpore une spécification unique avec le nom de l'élément de programme qui pourrait être distingué par n'importe quel code ou donnée.
  4. L'étendue dans la déclaration décrit la visibilité de la variable, de la fonction, de l'objet, de la classe, de l'énumération, etc. En revanche, dans la définition, l'étendue concerne la durée.

Exemple de définition

  • Définition de variable ainsi que la déclaration:
    int r = 10;
  • Définition de la fonction:
     int add (int x, int y) {int a; a = x + y; retourne un; } 

Exemple de déclaration

  • Déclaration de variable:
    extern int r;
  • Déclaration de fonction:
    int add (int p1, int p2);

Conclusion

Le processus de déclaration est utilisé pour rendre l'élément de programme visible pour le compilateur et il n'est pas nécessaire d'allouer de la mémoire. Inversement, définition est une déclaration qui réserve le stockage. En termes simples, le compilateur réserve l’espace mémoire de l’entité déclarée.

Top