Вопрос Зачем программе нужен этот void? если можно просто,ни чего,ни ставить тогда.

Регистрация
14 Окт 2013
Сообщения
70
Репутация
1
Спасибо
0
Монет
0
Зачем программе нужен этот void? Если можно просто,ни чего,ни ставить тогда.
 
В языке 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.
 
Например, чтобы разрулить неоднозначность в такой ситуации:

#include

my_function(); // Это прототип или вызов?

...

int main() {

...
 
Для единообразия. Можно было бы написать транслятор так, что бы void был не нужен, но разработчики уже так придумали (неспроста, кстати), а вам, и всем, приходится подчиняться.
 
Назад
Сверху