Другие языки программирования и технологии

уважаемые программеры! у меня вопрос по Dev C++! возможно он покажется глупым....

для чего существуют операторы "void main ()" и "int main ()" ? и какая между ними разница? может кто ссылочку даст на толковый справочник...
Vladymyr Goron
Vladymyr Goron
565
void main() - это процедура, а
int main() - это функция.

В чем их главное отличие? В том, что процедура не может возвратить результат, а функция может. В данном случае функция int main() возвратит значение целого типа.

Рассмотрим простой пример. Вычисление, скажем, суммы двух чисел a и b.

Допустим, есть функция, которая складывает эти числа. Так как это функция, то она должна возвратить результат.

int sum (int a,int b)
{
return (a+b);
}

Теперь, если написать так:

int a = 1;
int b = 2;
int c = sum(a,b);

то в переменной c будет 3.

С процедурой такого сотворить нельзя. Их используют для разбития программ на более мелкие подпрограммы, что существенно облегчает процесс программирования. Такой подход называется "функциональным программированием"
Алиаскар Нурмахамбетов
Алиаскар Нурмахамбетов
495
Лучший ответ
Rahmatulla Nurullaev Это совсем не "Функциональное программирование" Даже близко к ФП никакого отношения не имеет.. ФП -- это другая парадигма программирования, декларативная (процедурное и ООП -- это императивная)

Это совершенно другая идеология и оно основанно на других абстракциях(в основном лямбда-исчисление)
Vladymyr Goron а можно попросить тебя пример с воидом где он ничего не возвращает?
Rahmatulla Nurullaev Кстати в терминах С все это называется функциями
Vladymyr Goron а теперь объясните мне пожалуйста return 0 если вам конечно не трудно.. =))
Владимир Юрьев а что тогда означает void main(void)?
main () - это не оператор. Это объявление главной процедуры. Тоесть, парадигма такова, что весь код есть процедура, и при запуске программы ОС вызывает main. Соответственно, void main явно указывает на то, что программа ничего не вернет, а int main - вернет целое значение. Возвращенные программой значения можно анализировать, например, в пакетном файле (*.bat в ОС семейства Microsoft, команда - IF ERRORLEVEL). Да, в скобочках можно и переменные указывать. Эти переменные - суть параметры командной строки, насколько я знаю. В Паскале еще поизголяться надо, чтобы командную строку получить, а тут вон как все просто.
MJ
Merdan Jumamuradov
7 194
Vladymyr Goron ну да, было б оно всё так просто как кажется....
это не операторы. это объявление функции с именем main.. в первом случае ничего не возвращающей, во втором возвращающей значение типа int
Rahmatulla Nurullaev
Rahmatulla Nurullaev
4 879
Rahmatulla Nurullaev обычно(точнее почти всегда) выполнение программы на С/С++ начинается именно с этой функции...
если писать int main() то необходимо(точнее -- правило хорошего тона) в конце функции явно возвращать 0(если все выполнилось успешно) или что-либо другое, если произошла ошибка.
какая между ними разница

void main ничо не возращает.. типа return 0 не нужен а в другом int main () чото нада возвращать при выходе з функцыи, интересно а от куда взялся void main () там визард делает такой пример.. я неимию Dev C++! чо ет вопше за хрень такая. . :)
Vladymyr Goron чёт я тебя не совсем понял =))