С другой стороны, std::exit(EXIT_SUCCESS) практически из любой точки вашей программы (очевидно, она становится более сложной, если у вас несколько потоков / процессов).
Обратите внимание, что на большинстве платформ (и, в частности, POSIX), EXIT_SUCCESS имеет значение 0 , Так return 0 или же exit(0) будет обычно работать так же хорошо.
user129570 31 авг ’11 в 10:28 2011-08-31 10:28
2011-08-31 10:28
Ваш main() функция должна вернуться 0 на успех.
Если вы позвоните exit() Вы можете назвать это либо 0 или макрос EXIT_SUCCESS , Из FDIS, 18.5.8, относительно void exit(int status) :
Если статус равен нулю или EXIT_SUCCESS, возвращается определяемая реализацией форма успешного завершения статуса.
Чтобы объяснить возвращение нуля из main вот 3.6.1.5:
Оператор return в main приводит к выходу из функции main (уничтожению любых объектов с автоматическим хранением) и вызову std::exit с возвращаемым значением в качестве аргумента. Если управление достигает конца main, не встречая оператора return, эффект заключается в выполнении return 0; ,
Источник: stackru.com
Язык C++ с нуля | #25 Операторы break и return их свойства и различия в c++.
Какое правильное значение возвращается в операционную систему после успешного завершения программы?
от вашей main() функции main() . Альтернативно, std::exit(EXIT_SUCCESS) из любой точки вашей программы (он становится более сложным, если у вас есть несколько потоков/процессов, очевидно). Обратите внимание, что на большинстве платформ (и, в частности, POSIX) EXIT_SUCCESS имеет значение 0 . Так что return 0 или exit(0) обычно работают так же хорошо.
Oliver Charlesworth 31 авг. 2011, в 08:50
Поделиться
Oliver Charlesworth 31 авг. 2011, в 10:40
Извини, неважно. Я думаю 0 и EXIT_SUCCESS имеют точно такой же эффект. Я разместил некоторые цитаты из стандарта ниже. Дело в том, что стандартное поведение main() — возвращать 0 , поэтому я считаю, что 0 — это лучший способ явного возврата из main , хотя он имеет тот же эффект, что и EXIT_SUCCESS .
Kerrek SB 31 авг. 2011, в 10:42
Oliver Charlesworth 31 авг. 2011, в 10:43
Показать ещё 1 комментарий
Функция main() должна вернуть 0 при успешном завершении.
Если вы вызываете exit() , вы можете вызвать его либо с 0 либо с макросом EXIT_SUCCESS . Из FDIS, 18.5.8, относительно void exit(int status) :
Если статус равен нулю или EXIT_SUCCESS, возвращается форма успешного завершения статуса.
Чтобы объяснить возвращение нуля из main , вот 3.6.1.5:
Оператор возврата в основном имеет эффект выхода из основной функции (уничтожения любых объектов с автоматической продолжительностью хранения) и вызова std :: exit с возвращаемым значением в качестве аргумента. Если элемент управления достигает конца main без столкновения с оператором return, это эффект выполнения return 0; ,
Kerrek SB 31 авг. 2011, в 07:45
Поделиться
Машечкин И. В. — Операционные системы — Классические задачи синхронизации
Ещё вопросы
- 0 JS не работает на ПК, но работает на JSFIddle
- 1 Нет Access-Control-Allow-Origin с использованием настройки OneSignal
- 0 извлекать несуществующую строку как NULL при присоединении
- 0 Пример jQuery inArray в фильтрах
- 0 Проблема, пытаясь предварительно удалить удаление с php и angular
- 0 Директива AngularJS для вкладок пользовательского интерфейса BootStrap (проблемы с областью изоляции)
- 1 Gradle, как заменить устаревший ‘variableOutput.getPackageLibrary ()’ на ‘variable.getPackageLibraryProvider ()’?
- 0 AngularJS продолжить цикл из индекса
- 0 преобразование pcloudXYZ в pcloudXYZRGB с использованием pcl 1.6
- 0 не удалось проверить значение поля datetime с помощью PHP
- 1 Плавное вращение камеры (look-control) в A-Frame
- 0 Нет такого файла или каталога в строке /cgi-bin/upload.pl 26. При попытке загрузить файл с помощью AngularJS
- 0 Невозможно отправить почту C ++
- 0 Поделитесь данными в контроллере в angularjs
- 0 Сортировка списка с помощью jquery UI
- 1 Версия Bump Gradle без столкновения с версией Android Gradle Plugin
- 1 консолидация избыточной информации в цикле
- 0 Можете ли вы неявно вызвать метод, основанный на объекте
- 0 Что на самом деле означает «установить библиотеку» в Linux?
- 0 как отправить JSON также из PHP API
- 1 Как установить значение месяца на основе количества
- 1 Babel CLI игнорирует конфигурацию, когда ввод передается по каналу
- 1 Читать значения из узлов XML?
- 1 Толчок массива Javascript
- 0 почему элемент указателя инициализирован ненулевым?
- 1 Я не вижу названия файлов mp3 в моем представлении Android-ресайклера, вместо этого я вижу их ссылки
- 0 AngularJS $ (фильтр) не получает функцию Date ()?
- 0 Файл как аргументы командной строки
- 0 как сделать пользовательскую директиву в угловых для расчета расстояния с помощью карт Google
- 1 Отображение графики, как они рисуют в разгаре
- 1 Используйте Google PaymentRequest на локальном сайте, работающем в эмуляторе Android
- 1 Конфигурационные файлы, редактируемые после `npm run build`
- 0 Использование контроллеров, добавленных маршрутами, для объявления переменных $ scope в Angular JS?
- 0 Laravel 5.4 Вызов функции-члена attach () в null при вставке в сводную таблицу
- 1 Отключить визуальную студию 2013 Intellisence ссылки. Control + щелчок мышью
- 0 Ошибка в AngularJS? Различные результаты на Chrome (43) и Firefox (38.0.5)
- 1 Как правильно перевести метки Kmeans в метки категорий
- 0 Ошибка при использовании оператора модуля в qt на двойном
- 1 Tokenize.detect_encoding (readline) есть только в python3?
- 0 Makefile условных операторов
- 1 Цикл проектов в решении в MSBuild
- 0 ошибка: у класса ‘Software’ нет поля с именем ‘ptr’
- 0 Подсчет конкретных строк mysql + express
- 0 Свойство AngularJS не связано с первым вызовом
- 1 Разница в форматировании подписки на события
- 0 Я что-то пропустил с этим $ http.jsonp в angularjs?
- 1 добавить новую строку другого цвета в конце таблицы
- 1 Многопоточность работы, выполненной в цикле for с использованием пула потоков
- 0 Php preg_replace () используя
Источник: overcoder.net
Каково правильное значение для возврата в операционную систему после успешного завершения программы?
Альтернативно, std::exit(EXIT_SUCCESS) из любой точки вашей программы (он становится более сложным, если у вас есть несколько потоков/процессов, очевидно).
Обратите внимание, что на большинстве платформ (и, в частности, POSIX) EXIT_SUCCESS имеет значение 0 . Так что return 0 или exit(0) обычно работают так же хорошо.
Функция main() должна вернуть 0 при успешном завершении.
Если вы вызываете exit() , вы можете вызвать его либо с 0 либо с макросом EXIT_SUCCESS . Из FDIS, 18.5.8, относительно void exit(int status) :
Если статус равен нулю или EXIT_SUCCESS, возвращается форма успешного завершения статуса.
Чтобы объяснить возвращение нуля из main , вот 3.6.1.5:
Оператор возврата в основном имеет эффект выхода из основной функции (уничтожения любых объектов с автоматической продолжительностью хранения) и вызова std :: exit с возвращаемым значением в качестве аргумента. Если элемент управления достигает конца main без столкновения с оператором return, это эффект выполнения return 0; ,
Источник: techarks.ru