Déclaration (informatique)

type de définition, en programmation informatique

En programmation informatique, la déclaration permet d'indiquer au compilateur l'existence d'une entité informatique (variable, routine, etc.) , en spécifiant:

Avec certains langages de programmation, notamment le langage C/C++, il est nécessaire de déclarer les entités informatiques avant de pouvoir les utiliser.

Déclaration et définition

modifier

Il faut bien différencier la déclaration et la définition. La déclaration ne fait qu'indiquer l'existence d'une entité informatique sans la créer alors que la définition l'instancie, c'est-à-dire qu'elle la crée. Par exemple, l'implémentation d'une routine est sa définition.

Exemple très simple en langage C
Déclaration Définition
Variable
int var;
var = 7;
Fonction
int Somme ( int Var1, int Var2 );
int Somme ( int Var1, int Var2 )
{
    return Var1 + Var2;
}

Dans certains langages de programmation, tel que le langage C/C++, la définition inclut la déclaration, ce qui signifie que la présence de la définition dans une unité (module) d'un programme permet d'y omettre la déclaration.

Précision du type de l'entité informatique dans la déclaration

modifier

Une déclaration (et par conséquent une définition) comporte souvent un type ; c'est le type retourné par l'entité informatique. Voici par exemple la définition d'un entier, valable dans plusieurs langages de programmation :

int i;

Dans d'autres langages, le type n'a pas besoin d'être précisé ; il sera déterminé en fonction de l'initialiseur de la variable. Par exemple, avec C++1x, cette instruction définit une variable de type caractère :

auto c = '.';

Ce concept s'appelle l'inférence de types.

Liste de déclarations

modifier

Il est souvent possible de déclarer plusieurs variables en une seule instruction. Par exemple, en langage C :

int i, j;

Leur type doit alors être commun (ici entier).

Liens externes

modifier
  • (fr) « Différence entre définition et déclaration », sur waytolearnx.com, (consulté le ) : « Définition est automatiquement une déclaration »
  • (fr) « Quelle est la différence entre une définition et une déclaration? », sur www.it-swarm-fr.com, (consulté le ) : « Une déclaration introduit un identifiant et décrit son type [...] Une définition instancie/implémente effectivement cet identifiant. »
  • (en) Alex Allain, « Declare vs Define in C and C++ », sur www.cprogramming.com, (consulté le ) : « When you declare a variable, a function, or even a class all you are doing is saying: there is something with this name, and it has this type. [...] Defining something means providing all of the necessary information to create that thing in its entirety. »
  • (en) « 8.2. Declarations, Definitions and Accessibility (The C Book) », sur publications.gbdirect.co.uk (consulté le )
  • (en) Microsoft Docs, « Declarations and definitions (C++) », (consulté le ) : « Declarations tell the compiler that a program element or name exists. Definitions specify what code or data the name describes. »
  • (en) GeeksforGeeks, « Difference between Definition and Declaration », sur www.geeksforgeeks.org (consulté le )
  • (en) « Declaration », sur www.pcmag.com (consulté le ) : « [...] statement that defines some type of program element (fields, variables, functions, arrays, etc.), as well as resources. Declarations do not generally create executable code. »
  • (en) « Difference Between Definition and Declaration », sur techdifferences.com (consulté le ) : « Declaration is used to specify the names to the program such as the name of a variable, function, namespace, classes, etc. [...] The definition of the program element reserves some amount of memory while declaration doesn’t involve memory allocation. »
  • (en) AmitDiwan, « Explain the Difference Between Definition and Declaration », sur www.tutorialspoint.com, (consulté le )
  • (en) « What is the Difference Between Declaration and Definition in C », sur pediaa.com, (consulté le ) : « The main difference between declaration and definition in C is that declaration of a variable indicates the compiler of the existence of a variable, while the definition of a variable indicates the compiler where and how much storage to create for a variable. »
  • (en) « The difference between declaration and definition », sur www.programmersought.com (consulté le ) : « the definition needs to allocate storage space; the declaration just tells the compiler that the function has been defined elsewhere »
  • (en) « Difference Between Definition and Declaration », sur byjus.com (consulté le ) : « [...] in definition, we assign memories to the variables. On the other hand, we do not allocate memory in the case of declaration. [...] Definition automatically becomes a declaration in a majority of scenarios. »