Encyclosphere.org ENCYCLOREADER
  supported by EncyclosphereKSF

Const

From Wikipedia (Fr) - Reading time: 2 min

En programmation, dans les langages C ou C++, const est un mot-clé permettant au programmeur de signaler au compilateur que l'élément ainsi qualifié ne doit pas être modifié pendant l'exécution du programme[1]. Cet élément sera donc constant tout le long d'une exécution normale du programme.

Mot-clé réservé

[modifier | modifier le code]

En tant que mot-clé réservé par spécification du langage[2],[3], il ne peut être utilisé que pour son objectif, ce qui proscrit, par exemple, son usage en tant que nom de variable.

Sa première introduction se situe dans la norme ANSI du langage C[3] de 1989. On le retrouve aussi dans la première norme ISO du langage C++[2] de 1998.

Déclaration d'une constante

[modifier | modifier le code]

Selon sa position dans l'expression, le mot-clé const peut être interprété différemment par le compilateur[4].

const char c1;           //Le caractère ne peut être modifié
const char * c2;         //Le caractère pointé ne peut être modifié
char * const c3;         //Le pointeur vers le caractère ne peut être modifié
const char * const c4;   //Le pointeur ET le caractère pointé ne peuvent être modifiés

Conséquences

[modifier | modifier le code]

Le compilateur vérifie que la variable ne puisse être modifiée à aucun endroit du code. Ainsi, il existe une application en programmation par contrat par le fait que la déclaration implique une postcondition garantie à la compilation[5]. De plus, il permet aussi de vérifier le type de la constante.

Dans la syntaxe d'appel d'une fonction, il permet de signaler que la variable ne sera pas modifiée dans toute la fonction. Ceci permet d'utiliser des constantes en paramètres de fonctions.

int mafonction(const char * c)

Le compilateur renvoie un warning si une constante passe en paramètre non constant dans une fonction[6].

int autrefonction (char * i);

const char * param;

autrefonction(param); /* Cette ligne envoie une erreur car on ne peut plus garantir que la chaîne param restera bien inchangée*/

Notes et références

[modifier | modifier le code]
  1. « const (C++) », sur msdn.microsoft.com (consulté le )
  2. a et b « ISO/IEC 14882:1998 - Langages de programmation -- C++ », sur www.iso.org (consulté le )
  3. a et b Brian W. Kernighan et Dennis M. Ritchie (trad. de l'anglais), Le langage C - 2e éd : Norme ANSI, Paris, Dunod, 280 p. (ISBN 978-2-10-071577-0)
  4. « Introduction au langage C : Qualificatifs de type », sur c.developpez.com (consulté le )
  5. Julien Blanc, « Programmation par contrat, application en C++ », sur julien-blanc.developpez.com (consulté le ), p. V-A-2. Le cas de const
  6. Jesse Liberty, C++, CampusPress (ISBN 978-2-7440-0840-5), p. 51

Licensed under CC BY-SA 3.0 | Source: https://fr.wikipedia.org/wiki/Const
23 views |
↧ Download this article as ZWI file
Encyclosphere.org EncycloReader is supported by the EncyclosphereKSF