Недавно мне пришлось вводить небольшую C-тестовую программу, и в процессе я совершил орфографическую ошибку в основной функции, случайно используя 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