Мне недавно пришлось набрать небольшую тестовую программу на Си, и в процессе я допустил орфографическую ошибку в основной функции, случайно используя vooid
вместо void
.
И все же это все еще работало.
Сокращая его до самой маленькой полной версии, я получил:
int main (vooid) {
return 42;
}
Это действительно компилируется (gcc -Wall -o myprog myprog.c
) и при запуске возвращает 42.
Как именно этот действительный код?
Вот расшифровка и вставка из моей оболочки bash
, чтобы показать, что я делаю:
pax$ cat qq.c
int main (vooid) {
return 42;
}
pax$ rm qq ; gcc -Wall -o qq qq.c ; ./qq
pax$ echo $?
42