На какое-то мгновение я очень гордился тем, что написал свою первую программу C без ошибок. Вот весь исходный код:
int main;
Он компилируется даже без int
, но выдается предупреждение (даже без -Wall
) и, как программист, который нацелен на программу без ошибок, я рассматриваю их как ошибки.
С удовольствием скомпилировав это приложение, я сразу же бросился его запускать. К моему удивлению, появилась ошибка ошибки сегментации...
Теперь серьезно. Что именно происходит?
Моя догадка заключается в следующем: это отсутствие определения main
. Это так очевидно, но компилятор разрешает это. OK, main
может быть задано в другом блоке. Но даже компоновщик ничего не делает по этому поводу. Любая конкретная причина, по которой?