|
Programmation
: C
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Déclaration
d'une variable:
Un identificateur est un suite de lettres et de chiffres commençant par une lettre. Le symbole _ (caractère souligné) est considéré comme une lettre, on réserve son utilisation en premier caractère pour les variables systèmes. Le compilateur différencie les lettres minuscules et majuscules. Conventions en usage
i, j, k, ... pour les indices de boucle
p, q, p1,... pour les identificateurs de pointeurs
s pour une variable de type chaîne de caractères
tmp pour une variable temporaire,...
donnez aux variables un nom mnémonique, supprimez les noms
du style style toto1, toto2,... comme les noms trop compliqués
à retenir: prmpt qui pourrait vouloir signifier "premier
point".
rendre lisibles les identificateurs comprenant plusieurs mots par le caractère
"_" ou par une majuscule sur les débuts des mots: premier_point
ou premierPoint.
ne vous limitez pas sur le nombre de caractères par identificateur
commentez chaque définition de variable
les variables débutant par le symbole souligné _ sont habituellement
réservées au système Voir d'autres conseils pour nommer les variables page 105 de ce document. Les classes d'allocation Où effectuer la déclaration ?
à l'extérieur des fonctions = variables globales et
externes
entre la définition d'une fonction et son corps = variables
locales
au début d'une instruction composée = variables localesLes différentes classes de variables
variables locales (classe auto par défaut)
variables locales (classe register)
variables locales (classe static)
variables globales (classe static par défaut)
variables globales externes et fonctions externes (classe extern)
Variables locales - classe auto par défaut
Variable automatique
fait partie de l'environnement local d'une fonction
n'est visible que dans le bloc concerné
allouée dans la pile lors de l'exécution
n'existe que pendant l'exécution du blocVariables locales à un bloc - classe auto par défaut Il est tout à fait possible de limiter la portée d'une variable locale à un petit groupe d'instructions (appelé alors bloc) - Par exemple :void main(void) La portée de la variable j est limitée au bloc dans lequel cette variable est déclarée. L'imbrication des blocs permet de déclarer des variables de même nom, seule la variable de niveau le plus profond est alors accessible dans un bloc donné. Variables locales - classe register
Variables locales - classe static Exemple:
Variable locale static
fait partie de l'environnement local d'une fonction
l'emplacement mémoire est alloué lors de la compilation
du programme et demeure inchangé durant son exécution Variables globales - classe static par défaut
Variable globale
fait partie de l'environnement du fichier, donc de toutes les fonctions
définies dans le fichier; toutes les fonctions peuvent modifier
cette variable et le buggage devient difficile.
l'emplacement mémoire est alloué lors de la compilation
du programme et demeure inchangé durant son exécution.Haut de la page Variables globales - classe extern
Variable globale externe
fait partie de l'environnement de chaque fichier qui inclu sa déclaration,
toutes les fonctions de ces fichiers peuvent donc modifier cette variable
et compliquer le débuggage.
l'emplacement mémoire est alloué lors de la compilation
du fichier dans lequel la variable est déclarée (sans extern),
les références externes à cette variable dans les
autres fichiers sont effectués lors de l'édition de liens.Par convention: Fonction externe La fonction extern permet de séparer la déclaration du profil d'une fonction de sa définition dans le même fichier ou des fichiers séparés:
L'initialisation de variables lors de leur déclaration initialisation d'une variable permanente (static) par une valeur connue lors de la compilation
réservation d'une zone de TAILLE octets consécutifs,
association du nom symbolique nom à l'adresse de début de
la zone mémoire réservée,
réservation d'une zone de 4 octets permettant de stocker une adresse,
association du nom symbolique adresse_dernier_element à
l'adresse de cette zone mémoire,
calcul de la constante nom + TAILLE - 1 (qui est bien l'adresse
du dernier élément du tableau nom),
stockage de cette valeur dans la variable adresse_dernier_element.
L'initialisation des tableaux est présentée page
53Initialisation d'une variable temporaire
initialisation effectuée lors de l'allocation mémoire de
la variable, lors de chaque appel de la fonction dans laquelle
elle est définie
par une expression quelconque (et non par une expression constante) Les variables non modifiables L'attribut
const placé devant une déclaration prévient
le compilateur que cette variable ne peut pas être modifiée
par une instruction du programme. Une
telle variable n'est pas réellement considérée comme
une constante, mais plutôt comme une variable non modifiable. Par
exemple, on ne peut pu utiliser une telle variable pour dimensionner un
tableau : Ce
mécanisme peut également être utilisé lors
du passage des arguments dans une fonction: la déclaration d'un
argument peut être précédée du mot clé
const précisant ainsi que ce paramètre, qu'il soit
une adresse ou une variable, ne peut pas être modifié par
la fonction.Langage C Partie I: Déclaration des variables |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Site modifié le 03/02/2003 Réalisé en 1999-2002, avec : Macromedia DreamWeaver 4.01 par SGD |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||