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

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

Регистрация
27 Июн 2013
Сообщения
84
Репутация
11
Спасибо
1
Монет
0
В языке C если ничего не стоит, значит там подразумевается int. При этом функция может ничего не возвращать, а может и вернуть целое число. Такое поведение изначально было заложено в язык - когда void в C ещё не было.

Потом появился C++ - в котором C немного причесали и явно разделили случаи "возвращаем необъявленный int" и "ничего не возвращаем" - добавив void. После чего void переехал из C++ в C.

И не стоит забывать про тип void* - для которого тоже нужно слово void.

P.S. В примере Def это абсолютно корректный прототип.

P.P.S. Если ты возьмёшь первое издание K&R (за много лет до C++) и сравнишь со вторым (современный C), увидишь несколько радикальных отличий в языке, вызванных заимствованием синтаксиса из C++.
 
Регистрация
25 Май 2013
Сообщения
85
Репутация
0
Спасибо
0
Монет
0
Чтобы знать что это именно void.
 
Регистрация
13 Дек 2013
Сообщения
84
Репутация
-3
Спасибо
0
Монет
0
Например, чтобы разрулить неоднозначность в такой ситуации:

#include

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

...

int main() {

...
 
Регистрация
15 Сен 2013
Сообщения
83
Репутация
0
Спасибо
0
Монет
0
Для единообразия. Можно было бы написать транслятор так, что бы void был не нужен, но разработчики уже так придумали (неспроста, кстати), а вам, и всем, приходится подчиняться.
 
Сверху Снизу