Почему программы на C компилируются, даже если отсутствует оператор return? [Дубликат]

This question already has an answer here:

Why C standards allow you not to return a value from a function? 6 answers

Я реализую некоторые базовые структуры данных в C, и я обнаружил, что если я опускаю тип возврата из функции и вызываю эту функцию, компилятор не генерирует ошибку. Я скомпилировал сcc file.c и не использовал-Wall (поэтому я пропустил предупреждение), но на других языках программирования это серьезная ошибка, и программа не будет компилироваться.

В соответствии с запросом Грэма Борланда, вот простой пример:

int test() 
{
  printf("Hi!");
}

int main() 
{ 
    test();
}

Ответы на вопрос(5)

Ваш ответ на вопрос