CFA INSTA — BTS CIELBTS CIEL — révisions
Accueil / Outils / Informatique & développement / Atelier C et C++

Atelier C et C++

clang compile dans votre navigateur — rien n'est envoyé nulle part. Et il est réglé pour dire ce qu'aucun TP ne dit : case hors du tableau, variable non initialisée, division par zéro, avec le numéro de ligne.

programme.c
Console

        

Le séparateur central élargit l'éditeur sur la console. — ou F1.

Six fautes que votre PC ne vous dira pas, et comment cet atelier les nomme

Un programme qui compile sans un mot et qui affiche n'importe quoi : c'est la situation la plus coûteuse du premier semestre, parce qu'il n'y a rien à lire pour comprendre. Cet atelier compile avec clang — le même compilateur que sous macOS et dans beaucoup d'entreprises — mais il ajoute une instrumentation que personne n'active en cours. Résultat : la faute est nommée, avec sa ligne.

La fauteUn gcc ordinaireCet atelier
Case hors du tableau
t[7] sur int t[5]
Rien. Il lit la mémoire du voisin et continue. « Case hors du tableau : indice 7 », ligne et colonne.
Variable jamais initialisée Une valeur différente à chaque exécution. Avertissement à la compilation, et à l'exécution un nombre reproductible que l'atelier reconnaît et explique.
Le & oublié dans scanf Rien, sans -Wall. « Le & est oublié dans scanf », avec la règle et son exception.
Division par zéro Le programme meurt sans dire où. « Division par zéro », ligne et colonne.
return manquant Rien. La fonction renvoie ce qui traînait. Le chemin fautif est nommé à la compilation.
Boucle sans fin Le terminal se fige. Arrêt au bout de 5 secondes, et la question à se poser.

Le programme tourne dans votre navigateur, jamais sur un serveur : rien de ce que vous écrivez ne quitte votre appareil. La machine est en 32 bits — un pointeur y occupe donc 4 octets, contre 8 sur votre PC. C'est la seule différence visible, et elle ne se remarque que sur sizeof(int *). Les fichiers ouverts avec fopen existent le temps de l'exécution, et leur contenu est affiché sous la console à la fin.

Compilateur clang 8.0.1 et éditeur de liens lld, portés en WebAssembly par le projet wasm-clang (Apache 2.0 avec exception LLVM), bibliothèque standard wasi-libc et libc++. Environ 60 Mo téléchargés une seule fois, puis conservés par le navigateur. Les licences sont livrées à côté du moteur : outils/c/LICENCE-llvm.txt et outils/c/LICENCE-wasm-clang.txt.