Ce qui est important dans un langage de programmation, ce n'est pas ce qu'il autorise, c'est ce qu'il interdit.J.P. Rosen
Le compilateur détecte en outre des erreurs liées à la déclaration et à l'utilisation des éléments de votre programme.
En particulier, une variable doit être déclarée avant d'être utilisée, et, si c'est une variable locale à une fonction, elle ne sera ``visible'' (ie- elle ne pourra être utilisée) que dans le corps de cette fonction.
Voici un exemple d'erreur de visibilité, accompagné du message produit par le compilateur :
void main() { i = 5; }
CC: "ex8.cpp", line 1: error: i undefined (1285)
En outre, le compilateur vérifie la cohérence de type entre les déclarations et les utilisations des objets, ainsi que dans les appels de sous-programmes. Exemple :
void fun(double x) {}
void main()
{
int * i;
i = 3;
fun("abc");
}
CC: "ex9.cpp", line 5: error: bad assignment type: int * = int (1213)
CC: "ex9.cpp", line 6: error: bad argument 1 type for fun(): char [4]
( double expected) (1264)