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)