~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ E846F97B102EAD261E540F6D4491ECDE__1704822000 ✰
Заголовок документа оригинал.:
✰ Void type - Wikipedia ✰
Заголовок документа перевод.:
✰ Тип пустоты — Википедия, бесплатная энциклопедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Void_type ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/e8/de/e846f97b102ead261e540f6d4491ecde.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/e8/de/e846f97b102ead261e540f6d4491ecde__translat.html ✰
Дата и время сохранения документа:
✰ 11.06.2024 09:42:21 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 9 January 2024, at 20:40 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Тип пустоты — Википедия, бесплатная энциклопедия Jump to content

Тип пустоты

Из Википедии, бесплатной энциклопедии

Тип void в нескольких языках программирования , производных от C и Algol68 , является типом возвращаемого значения , функции которая обычно возвращает значение , но не передает значение результата вызывающей стороне. Обычно такие функции вызываются из-за их побочных эффектов , таких как выполнение какой-либо задачи или запись в их выходные параметры. Использование типа void в таком контексте сравнимо с процедурами в Паскале и синтаксическими конструкциями, определяющими подпрограммы в Visual Basic . Он также похож на тип единицы измерения , используемый в языках функционального программирования и теории типов. см. Тип устройства # В языках программирования Для сравнения .

C и C++ также поддерживают указатель на тип void (задаваемый как void *), но это несвязанное понятие. Переменные этого типа являются указателями на данные неопределенного типа, поэтому в этом контексте (но не в остальных) void *действует примерно как универсальный или топовый тип . Программа может преобразовать указатель на любой тип данных (кроме указателя на функцию ) в указатель на void и обратно в исходный тип без потери информации, что делает эти указатели полезными для полиморфных функций. Стандарт языка C не гарантирует, что разные типы указателей имеют одинаковый размер или выравнивание.

В C и C++ [ править ]

Функция с типом результата void завершается либо при достижении конца функции, либо при выполнении оператора return без возвращаемого значения. Тип void также может заменять список аргументов , прототипа функции чтобы указать, что функция не принимает аргументов. Обратите внимание, что во всех этих ситуациях void не является квалификатором типа какого-либо значения. Несмотря на название, это семантически похоже на неявный тип единицы измерения , а не на нулевой или нижний тип (который иногда ошибочно называют «пустым типом»). В отличие от реального типа единицы, который является одноэлементным, у типа void нет способа представления своего значения, и язык не предоставляет никакого способа объявить объект или представить значение с типом. void.

В самых ранних версиях C функции, не имеющие конкретного результата, по умолчанию возвращали тип intа функции без аргументов просто имели пустые списки аргументов. Указатели на нетипизированные данные объявлялись как целые числа или указатели на char. Некоторые ранние компиляторы C имели функцию, которая сейчас рассматривается как раздражающая, генерировать предупреждение при любом вызове функции, которая не использовала возвращаемое значение функции. Старый код иногда приводит такие вызовы функций к void, чтобы подавить это предупреждение. К тому времени, когда Бьёрн Страуструп начал свою работу над C++ в 1979–1980 гг., [ нужна цитата ] Указатели void и void были частью диалекта языка C, поддерживаемого компиляторами, производными от AT&T. [1]

Явное использование void и отсутствие аргументов в прототипе функции имеет разную семантику в C и C++, как подробно описано в следующей таблице: [2]

С Эквивалент С++
void f(void); void f(); ( предпочтительно )
void f(void);
void f(); ( принимает постоянное, но неизвестное количество аргументов ) template <typename... Ts> void f(Ts... ts) {}

(не строго эквивалентно)

Синтаксис C для объявления (невариативной) функции с пока не указанным количеством параметров, например void f() выше, устарел в C99 . [3] В C23 (и C++) прототип функции с пустыми круглыми скобками объявляет функцию с нулевыми параметрами. [4] [5]

В Хаскеле [ править ]

В отличие от C++, в функциональном языке программирования Haskell тип void обозначает пустой тип , у которого нет обитателей [1] . Функция типа void не возвращает результатов, а программа с побочным эффектом с сигнатурой типа IO Voidне завершается или выходит из строя. нет тотальных функций В частности, в типе void .

Ссылки [ править ]

  1. ^ Ричи, Деннис М. (1993). « Развитие языка Си » . Association for Computing Machinery, Inc. через автора и Lucent Technologies Inc., 1996 г. Архивировано из оригинала 20 февраля 1998 г.
  2. ^ Страуструп, Бьярн (2009). Программирование: принципы и практика использования C++ . Бостон: Аддисон-Уэсли. п. 996. ИСБН  978-0-321-54372-1 .
  3. ^ Бьерн Страуструп, C и C++: практические примеры совместимости. Примиримые разногласия? Вам решать , Доктор Добб , 1 сентября 2002 г.; версия для печати
  4. ^ «WG14-N2432: Удалить поддержку определений функций с предложением списков идентификаторов» (PDF) . open-std.org . 25 сентября 2019 г. Архивировано (PDF) из оригинала 27 декабря 2022 г.
  5. ^ «WG14-N2841: Нет деклараторов функций без прототипов» . open-std.org . 10.10.2021. Архивировано из оригинала 12 ноября 2022 года.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: E846F97B102EAD261E540F6D4491ECDE__1704822000
URL1:https://en.wikipedia.org/wiki/Void_type
Заголовок, (Title) документа по адресу, URL1:
Void type - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)