« Conseils de codage en C/Recherche des erreurs » : différence entre les versions

Contenu supprimé Contenu ajouté
m →‎Utiliser le mot - clé const (c_rec_14) : mot - clé → mot-clé (ortho)
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
 
Ligne 23 :
 
===Exemple===
<sourcesyntaxhighlight lang="C">
for (int i = indiceMax; table[i] != NULL; i++)
{
free(table[i]);
}
</syntaxhighlight>
</source>
 
==for pour contrôler les boucles (c_rec_3)==
Ligne 81 :
===Exemple===
Pour le fichier ''graphique.h'':
<sourcesyntaxhighlight lang="C">
#ifndef GRAPHIQUE_H
#define GRAPHIQUE_H
Ligne 87 :
// ...
#endif
</syntaxhighlight>
</source>
 
==Mélange d'opérateur arithmétique et relationnel (c_rec_9)==
Ligne 114 :
Dans l'extrait de source suivant, les variables i se masquent.
 
<sourcesyntaxhighlight lang="C">
// Première déclaration de i
int i = 0;
Ligne 125 :
// ...
}
</syntaxhighlight>
</source>
Si la deuxième déclaration de i est supprimée, alors il y a un risque pour que l’incrémentation ne le soit pas, ce serait alors la variable déclarée hors du bloc qui serait utilisée, ce qui ne serait pas le comportement souhaité. Le code resterait alors valide et aucun problème ne serait détectée.
 
Ligne 155 :
Voici une illustration de la différence entre ces deux types [C FAQ] :
 
<sourcesyntaxhighlight lang="C">
char a[] = "hello";
char* p = "hello";
</syntaxhighlight>
</source>
 
La variable “ a ” occupe 6 octets dans l’espace de la mémoire dynamique. Cette zone sera désallouée lorsque la variable sortira de son espace de validité. La variable p occupe 4 octets (taille courante d’un pointeur). Elle est un pointeur qui référence une région de la mémoire non modifiable. Une nouvelle valeur peut être affectée à “p”, mais pas à “a”. En fait, un bon compilateur devrait imposer ici le type const char*.