Afzaal Ahmad Zeeshan
Цитата:
когда мы возвращаем значение как 0 для main (), который должен убедиться, что данная программа выполняется правильно .Но можем ли мы вернуть пользовательскую функцию в main()
Вы возвращаете не определенное пользователем значение, а значение из функции.
int add(int a,int b)
Эта функция возвращает int, который является встроенным типом В C++. И поэтому вы можете использовать эти функции в своих программах для возврата значений.
Прочтите абзац после следующей цитаты Однако, если бы вы захотели сделать что-то подобное,
class userdefined {
// members
};
userdefined main() {
userdefined defined;
// processing
return defined;
}
Это не будет соответствовать стандартам C++, и вы будете заставлять программу работать так, как она этого не ожидает. Компилятор будет жаловаться на несколько вещей, таких как "main must return int". Это из-за технических характеристик.
Цитата:
когда мы возвращаем значение как 0 для main (), который должен убедиться, что данная программа выполняется правильно
Если быть точным, 0 исходит из стандартов, где в качестве фактического макроса для этого используется "
EXIT_SUCCESS
Это должно сказать лежащему в основе фреймворку, что программа завершилась успешно,
нормальное завершение Когда вы возвращаете другое значение из функции, базовый фреймворк или Служба могут не знать,что результат был задуман. Фреймворк будет считать это какой-то ошибкой или чем-то еще, что фреймворк или операционная система имеют в базе данных. Вот почему программы должны возвращать 0, если вы чувствуете себя недовольными этим, вы можете пропустить эту строку начиная с C 1999 года, потому что компилятор сам добавит
return 0;
в конце программы, направляя фреймворк считать это нормальным завершением.
Для получения дополнительной информации, пожалуйста, ознакомьтесь со следующими документами,
Основная функция - cppreference.com[
^]
Структура программы-учебники по C++ [
^]
c++ - должен ли я возвращать EXIT_SUCCESS или 0 из main ()? - переполнение стека[
^]
Нет стандарта для основной функции:
Это неправильно, для этого существует стандарт, и компиляторы следуют ему. Для демо-версии,
попробовать это[
^]:
class defined { };
defined main()
{
defined usrdfnd;
return usrdfnd;
}
/*
7:14: error: '::main' must return 'int'
In function 'int main()':
11:10: error: cannot convert 'defined' to 'int' in return
*/
Вы можете прочитать сообщение об ошибке и посмотреть, что в нем написано. Однако вы всегда можете изменить процедуры компилятора и изменить то, как он следует стандартам.