~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 2E534AE1E0693F40550224EE651AAF2D__1715617260 ✰
Заголовок документа оригинал.:
✰ Declaration (computer programming) - Wikipedia ✰
Заголовок документа перевод.:
✰ Декларация (компьютерное программирование) — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Type_declaration ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/2e/2d/2e534ae1e0693f40550224ee651aaf2d.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/2e/2d/2e534ae1e0693f40550224ee651aaf2d__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 10:08:10 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 13 May 2024, at 19:21 (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

Декларация (компьютерное программирование)

Из Википедии, бесплатной энциклопедии
(Перенаправлено из объявления типа )

В компьютерном программировании объявление , — это языковая конструкция определяющая свойства идентификатора : она объявляет значение слова (идентификатора). [1] Объявления чаще всего используются для функций , переменных , констант и классов , но также могут использоваться и для других сущностей, таких как перечисления и определения типов. [1] Помимо имени (сам идентификатор) и типа объекта (функция, переменная и т. д.), в объявлениях обычно указывается тип данных (для переменных и констант) или сигнатура типа (для функций); типы могут также включать измерения, например, для массивов . Объявление используется для объявления о существовании объекта компилятору ; это важно в тех строго типизированных языках, которые требуют, чтобы функции, переменные и константы, а также их типы были указаны в объявлении перед использованием, и используется в предварительном объявлении . [2] Термин «декларация» часто противопоставляется термину «определение». [1] но значение и использование значительно различаются в зависимости от языка; см. ниже.

Объявления особенно заметны в языках традиции ALGOL , включая семейство BCPL , особенно C и C++ , а также Pascal . В Java используется термин «объявление», хотя Java не требует отдельных объявлений и определений.

Декларация против определения [ править ]

Одна из основных дихотомий заключается в том, содержит ли объявление определение: например, в объявлении переменной или константы указывается ее значение или только ее тип; и аналогично, указывает ли объявление функции тело ( реализацию ) функции или только ее сигнатуру типа. [1] Не все языки проводят это различие: во многих языках объявления всегда включают определение и могут называться либо «объявлениями», либо «определениями», в зависимости от языка. [а] Однако эти понятия различаются в языках, требующих объявления перед использованием (для которых используются предварительные объявления), и в языках, где интерфейс и реализация разделены: интерфейс содержит объявления, реализация содержит определения. [б]

В неофициальном использовании «объявление» относится только к чистому объявлению (только типы, без значения или тела), тогда как «определение» относится к объявлению, которое включает значение или тело. Однако в формальном использовании (в спецификациях языка) «объявление» включает в себя оба этих значения с более тонкими различиями в зависимости от языка: в C и C++ объявление функции, не включающее тело, называется прототипом функции , а объявление функции, которая включает тело, называется «определением функции». В Java объявления встречаются в двух формах. Для общедоступных методов они могут быть представлены в интерфейсах как сигнатуры методов, которые состоят из имен методов, типов ввода и типа вывода. Аналогичные обозначения можно использовать и в определении абстрактных методов , не содержащих определения. Можно создать экземпляр включающего класса, вместо этого для создания экземпляра класса необходимо будет создать новый производный класс, который обеспечивает определение метода. Начиная с Java 8 , в язык было включено лямбда-выражение, которое можно было рассматривать как объявление функции.

Декларации и определения [ править ]

В языке программирования C-семейства объявления часто собираются в файлы заголовков , которые включаются в другие исходные файлы, которые ссылаются на эти объявления и используют их, но не имеют доступа к определению. Информация в файле заголовка обеспечивает интерфейс между кодом, использующим объявление, и кодом, который его определяет, — это форма сокрытия информации . Объявление часто используется для доступа к функциям или переменным, определенным в разных исходных файлах или в библиотеке . Несоответствие между типом определения и типом объявления приводит к ошибке компилятора.

Что касается переменных, определения присваивают значения области памяти, которая была зарезервирована на этапе объявления. Для функций определения предоставляют тело функции. Хотя переменная или функция может быть объявлена ​​много раз, обычно она определяется один раз (в C++ это известно как правило одного определения или ODR).

Динамические языки, такие как JavaScript или Python, обычно позволяют переопределять функции, то есть перепривязывать их ; Функция — это переменная, как и любая другая, с именем и значением (определением).

Вот несколько примеров объявлений, которые не являются определениями в C:

внешний   символ   пример1  ; 
  внешний   int   пример2  ; 
  недействительный   пример3  (  недействительный  ); 

Вот несколько примеров объявлений, которые являются определениями, опять же на языке C:

пример   символа1  ;    /* Вне определения функции она будет инициализирована нулем.   */ 
 int   example2   =   5  ; 
  void   example3  (  void  )   {   /* определение между фигурными скобками */   } 

Неопределенные переменные [ править ]

В некоторых языках программирования неявное объявление предоставляется при первом обнаружении такой переменной во время компиляции . В других языках такое использование считается ошибкой, которая может привести к выдаче диагностического сообщения. Некоторые языки изначально использовали неявное объявление, но по мере развития стали предоставлять возможность его отключения (например, в Perl " use strict" или Visual Basic " Option Explicit").

См. также [ править ]

Примечания [ править ]

  1. ^ Например, Java использует «объявление» (объявление класса, объявление метода), а Python использует «определение» (определение класса, определение функции). [3]
  2. ^ Это различие наблюдается в «единицах» (модулях) Паскаля, а также в традиционной организации кода C и C++, в которой есть файлы заголовков , состоящие в основном из чистых объявлений, и исходные файлы, состоящие из определений, хотя это не всегда строго соблюдается и не применяется. по языку.

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

  1. ^ Перейти обратно: а б с д «Объявление определяет интерпретацию и атрибуты набора идентификаторов. Определение идентификатора — это объявление для этого идентификатора, которое:
    • для объекта [переменная или константа] вызывает резервирование памяти для этого объекта;
    • для функции включает тело функции;
    • для константы перечисления — это (единственное) объявление идентификатора;
    • для имени typedef — это первое (или единственное) объявление идентификатора».
    Спецификация C11, 6.7: Декларации, параграф 5.
  2. ^ Майк Банахан. «2.5. Объявление переменных» . ГБдирект . Проверено 8 июня 2011 г. Объявление [A] [...] вводит только имя и тип чего-либо, но не выделяет памяти[...].
  3. ^ 7. Составные операторы , Справочник по языку Python.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 2E534AE1E0693F40550224EE651AAF2D__1715617260
URL1:https://en.wikipedia.org/wiki/Type_declaration
Заголовок, (Title) документа по адресу, URL1:
Declaration (computer programming) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)