В языке C если ничего не стоит, значит там подразумевается int. При этом функция может ничего не возвращать, а может и вернуть целое число. Такое поведение изначально было заложено в язык - когда void в C ещё не было.
Потом появился C++ - в котором C немного причесали и явно разделили случаи "возвращаем необъявленный int" и "ничего не возвращаем" - добавив void. После чего void переехал из C++ в C.
И не стоит забывать про тип void* - для которого тоже нужно слово void.
P.S. В примере Def это абсолютно корректный прототип.
P.P.S. Если ты возьмёшь первое издание K&R (за много лет до C++) и сравнишь со вторым (современный C), увидишь несколько радикальных отличий в языке, вызванных заимствованием синтаксиса из C++.
Для единообразия. Можно было бы написать транслятор так, что бы void был не нужен, но разработчики уже так придумали (неспроста, кстати), а вам, и всем, приходится подчиняться.
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.