J'ai récemment eu à taper dans un petit C programme de test et, dans le processus, j'ai fait une faute d'orthographe dans la fonction principale par accidentellement à l'aide de vooid
au lieu de void
.
Et pourtant il travaillait encore.
En la réduisant à sa plus petite version complète, j'ai fini avec:
int main (vooid) {
return 42;
}
Ce n'est en effet compiler (gcc -Wall -o myprog myprog.c
) et, lorsqu'il est exécuté, il retourne 42.
Comment cela est-il valable code?
Voici une transcription coupé et collé de mon bash
coque pour montrer ce que je fais:
pax$ cat qq.c
int main (vooid) {
return 42;
}
pax$ rm qq ; gcc -Wall -o qq qq.c ; ./qq
pax$ echo $?
42