Регистрация
17 Сен 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
Я правильно понял что функция типа int возвращает значение, потому что она выполняет какие либо расчеты (которые могут быть заранее неизвестны) и поэтому она как бы возвращает результат своей работы? А функция типа void ничего не возвращает, то есть ничего не считает, а может просто например выводить какое то сообщение на экран (то есть мы заранее знаем какое сообщение она выведет). Итог: int - возвращает какое то число (результат вычислений), void - ничего не считает и возвращает какой нибудь текст который не меняется
 
А функция void может быть в классе, который содержит кучу полей. Вот она все "считает", а потом эти поля используются. the_class->eval(); int a = the_class->count; struct_type *pages = the_class->pages; и т. д.... Функция выполняет какие-то действия, т. е. всегда "считает" какой-бы она не была. Может она вообще возвращает код ошибки, который можно игнорировать.
 
void - ничего не считает и возвращает какой нибудь текст который не меняется/ Может считать очень много чего, но ничего не вернет. в том числе "какой-нибудь текст". Функции выполняют две вещи: 1. на основании переданных аргументов и окружения выполняют вычисления и возвращают результат. void - лишь частный случай такого результата. 2. производят некие побочные эффекты, например, вывод на экран. Если результат функции не зависит от аргументов и окружения (void - типичный пример такого результата), значит функция написана только для побочных эффектов. Если результат функции зависит только от аргументов, не зависит от окружения - получаем "функцию" в математическом смысле этого слова. если такая математическая функция еще и побочных эффектов не производит - получаем так называемую "чистую" функцию. чистые функции легко писать и отлаживать. их поведение предсказуемо.
 
Нет, не правильно. Функция может ничего не вычислять но возвращать int, равно как и функция, которая ничего не возвращает может выполнять любые вычисления. Одно другому не помеха.
 
Функция может не только возвращать или не возвращать какое-то значение, но и менять объявленные вне ее переменные или менять значения передаваемых ей параметров.
 
Назад
Сверху