Недавно мне пришлось ввести небольшую тестовую программу на C, и в процессе я допустил орфографическую ошибку в главной функции, случайно используя vooid
вместо void
. 1221] И все же он все еще работал.
Сокращая его до самой маленькой полной версии, я получил:
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