Константа (программирование)
Конста́нта в программировании — способ адресования данных, изменение которых рассматриваемой программой не предполагается или запрещается.
Использование именованных констант — приём, повышающий надёжность и безошибочность программ [1] , позволяя избегать использования «магических чисел».
При наличии синтаксической поддержки в языке программирования неименованные константы можно записывать в тексте программ как литералы.
Например, mvi A, 0, где 0 является числовой константой-литералом.
Именованные константы упростили процесс отладки и сопровождения программ:
- Исчезла необходимость помнить конкретные числа — имена запоминаются легче;
- Ошибки в именах обычно выявляются компилятором автоматически (кроме ситуаций, когда ошибочно использовано имя другой константы аналогичного типа);
- Упростился процесс внесения изменений: значение константы задано в программе всего в одном месте.
Не все языки программирования позволяют защищать от изменения косвенно адресуемые области памяти. Такая возможность обычно имеется а языках программирования высокого уровня, что повышает надёжность кода и возможность его повторного использования. Разумеется, преимущества именованных констант реализуются только при соответствующем стиле работы программиста, начиная с самых ранних этапов разработки программы.
Именованную константу можно понимать как функцию без аргументов. Такой взгляд позволяет, в соответствии с принципом Оккама, разумно сократить число сущностей, лежащих в основе программирования. Естественно, что истинная функция без аргументов не может возвращать других значений, кроме того, которое заложено в неё при разработке (редактировании кода) [источник не указан 107 дней] .
См. также
Примечания
- ↑Использование именованных констант
- Концепции языков программирования
Wikimedia Foundation . 2010 .
- Абихт, Иоганн Генрих
- Альбрехт Бранденбургский, архиепископ магдебургский и майнцский
Полезное
Смотреть что такое «Константа (программирование)» в других словарях:
- Шаблон (программирование) — Шаблоны (англ. template) средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например типам данных, размерам буферов, значениям по умолчанию). В C++ возможно создание шаблонов функций и … Википедия
- Охрана (программирование) — Охрана (охраняющее выражение) логическое выражение, которое предназначено для ограничения вычислительных процессов и направления их по определённому направлению в зависимости от условия охраны. Обычно, используется в функциональных языках… … Википедия
- Магическое число (программирование) — У этого термина существуют и другие значения, см. Магическое число. Понятие «Магическое число» в программировании имеет два значения: первое второе Содержание 1 Сигнатура данных 2 Плохая практик … Википедия
- Perl — Семантика: мультипарадигменный: императивный, объектно ориентированный, функциональный Тип исполнения: интерпретатор Появился в: 1987 Автор(ы) … Википедия
- C++ — У этого термина существуют и другие значения, см. C. См. также: Си (язык программирования) C++ Семантика: мультипарадигмальный: объектно ориентированное, обобщённое, процедурное, метапрограммирование Тип исполнения: компилируемый Появился в … Википедия
- Сравнение C Sharp и Java — Правильный заголовок этой статьи Сравнение C# и Java. Он показан некорректно из за технических ограничений. Сравнения языков программирования Общее сравнение Основной синтаксис Основные инструкции Массивы Ассоциативные массивы Операции со… … Википедия
- MSP430 — MSP430. MSP430 семейство 16 разрядных микроконтроллеров фирмы «Texas Instruments» … Википедия
- Оптимизация (информатика) — Эта статья об оптимизации программ и данных вообще; об оптимизациях, применяемых компиляторами см.: Оптимизация компилятора. У этого термина существуют и другие значения, см. Оптимизация. Оптимизация модификация системы для улучшения её… … Википедия
- PHP — У этого термина существуют и другие значения, см. PHP (значения). PHP Семантика: мультипарадигменный … Википедия
- Задача коммивояжёра — Оптимальный маршрут коммивояжёра через 15 крупнейших городов Германии. Указанный маршрут является самым коротким из всех возможных 43 589 145 600. Задача коммивояжёра (англ. Travelling salesman problem, TSP) (коммивояжёр … Википедия
- Обратная связь: Техподдержка, Реклама на сайте
- Путешествия
Экспорт словарей на сайты, сделанные на PHP,
WordPress, MODx.
- Пометить текст и поделитьсяИскать в этом же словареИскать синонимы
- Искать во всех словарях
- Искать в переводах
- Искать в ИнтернетеИскать в этой же категории
Что такое константа в программировании
Константа, переменная — это базовые понятия в любом языке программирования. Дадим им определения.
Константа — это величина, которая при выполнении программы остаётся неизменной.
Переменная — это ячейка памяти для временного хранения данных. Предполагается, что в процессе выполнения программы значения переменных могут изменяться.
Описание и инициализация переменных
Прежде чем использовать в программе какую-то переменную, надо дать ей описание , то есть сказать, какое имя имеет переменная и каков её тип. Вначале указывается тип переменной, а затем её имя. Например:
int k; // это переменная целого типа int
double x; // это переменная вещественного типа удвоенной точности
Если имеется несколько переменных одного типа, то допускается их описание через запятую в одном операторе, например:
После описания переменной её можно использовать, но возникает вопрос: а какое значение имеет переменная сразу же после её описания? Ответ таков: в программе на языке C или C++ переменная после описания имеет произвольное значение , то есть ей просто выделяется свободный участок памяти и на этом всё заканчивается. В переменной хранится та последовательность двоичных цифр, которая была там до выделения памяти под эту переменную. Такой подход таит определённую опасность: можно по ошибке использовать в выражении переменную, которой не было присвоено ни какое значение:
Так как переменная x ни как не была определена, т. е. имела произвольное значение (чаще всего — это очень большое число или наоборот — очень маленькое), то и переменная y получит явно не то значение, на которое рассчитывал пользователь.
Чтобы избежать такой ошибки, Бьерн Страуструп рекомендует инициализировать переменные , то есть не просто выделять память под переменные, но и задавать им при этом необходимые значения. Например:
double a=3, b=4, c=5;
Инициализация переменных выполняется один раз на этапе компиляции, она не снижает скорость работы программы, но при этом уменьшает риск использования переменной, которая не получила ни какого значения.
Задание и использование констант
Выше было дано определение констант. Теперь рассмотрим работу с константами более подробно.
Все константы вне зависимости от типа данных можно подразделить на две категории: именованные константы и константы, которые не имеют собственного имени. Например:
25 — константа целого типа;
3.14 — вещественная константа;
‘A’ — символьная константа.
Все три приведённые здесь константы не имеют имени, они заданы своим внешним представлением и используются в программе непосредственно, например так:
int k=25; // переменная k инициализирована константой — целым числом 25.
В ряде случаев константе удобнее дать имя и использовать её далее по имени. Обычно это делается для математических или физических констант.
В языке C был единственный способ создания именованных констант — с помощью директивы препроцессора #define , например:
t = PI * 2; // здесь использована именованная константа PI, заданная выше
В языке C++ появился ещё один способ — использование константных переменных , то есть переменных, которые нельзя изменять после инициализации. Рассмотрим на том же примере:
const double PI=3.14; // здесь PI — константная переменная
В чём преимущество от использования константных переменных вместо задания констант с помощью директивы препроцессора #define ? Всё очень просто: при использовании константной переменной компилятор проверяет правильность задания константы, и если она будет задана неверно, то будет выдана ошибка именно в операторе, в котором дано определение константной переменной.
Если использована именованная константа, заданная директивой препроцессора #define , то ошибка будет показана только там, где используется константа. Например:
// в директиве препроцессора сделаем ошибку:
t = PI * 2; // в этой строке компилятор выдаст ошибку,
// хотя на самом деле ошибка допущена гораздо раньше!
Константы (Руководство по программированию на C#)
Константы — это постоянные значения, которые известны во время компиляции и не изменяются во время выполнения программы. Константы должны объявляться с модификатором const. Только встроенные типы C# могут быть объявлены как const . Константы ссылочного типа, отличные от того, String которые могут быть инициализированы только с значением NULL . Пользовательские типы, включая классы, структуры и массивы, не могут объявляться как const . Модификатор readonly позволяет создать класс, структуру или массив, которые инициализируются один раз (например, в конструкторе), и впоследствии изменить их нельзя.
C# не поддерживает методы, свойства или события const .
Тип перечисления позволяет определять именованные константы для целочисленных встроенных типов (например int , uint , long и т. д.). Дополнительные сведения см. в разделе Перечисление.
Константы должны инициализироваться сразу после объявления. Например:
class Calendar1
В этом примере константа Months всегда имеет значение 12, и его не может изменить даже сам класс. На самом деле в случае, если компилятор встречает идентификатор константы в исходном коде C# (например, Months ), он подставляет значение литерала непосредственно в создаваемый им промежуточный язык (IL). Поскольку с константой в среде выполнения не связан адрес ни одной переменной, поля const не могут передаваться по ссылке и отображаться в выражении как левостороннее значение.
Будьте внимательны, ссылаясь на постоянные значения, определенные в другом коде, например, в DLL. Если в новой версии DLL для константы определяется новое значение, старое значение литерала хранится в вашей программе вплоть до повторной компиляции для новой версии.
Несколько констант одного типа можно объявить одновременно, например:
class Calendar2
Выражение, которое используется для инициализации константы, может ссылаться на другую константу, если не создает циклическую ссылку. Например:
class Calendar3 < public const int Months = 12; public const int Weeks = 52; public const int Days = 365; public const double DaysPerWeek = (double) Days / (double) Weeks; public const double DaysPerMonth = (double) Days / (double) Months; >
Константы могут иметь пометку public, private, protected, internal, protected internal или private protected. Эти модификаторы доступа определяют, каким образом пользователи класса смогут получать доступ к константе. Дополнительные сведения см. в статье Модификаторы доступа.
Доступ к константам осуществляется так, как если бы они были статическими полями, поскольку значение константы одинаково для всех экземпляров типа. Для их объявления используйте ключевое слово static . Выражения, которые не относятся к классу, определяющему константу, должны включать имя класса, период и имя константы для доступа к этой константе. Например:
int birthstones = Calendar.Months;
Спецификация языка C#
Дополнительные сведения см. в спецификации языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.
См. также
- Руководство по программированию на C#
- Свойства
- Типы
- readonly
- Неизменность в C#, часть 1. Виды неизменности
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Константы
Константы в С — это фиксированные значения, которые не могут изменяться программой. Они могут быть любых типов, как показано в таблице.
| Тип данных | Пример константы |
|---|---|
| char | ‘а’ ‘\n’ ‘9’ |
| int | 1 123 21000 -234 |
| long int | 35000L -34L |
| short int | 10 -12 90 |
| unsigned int | 10000U 987U 40000U |
| float | 123.23F 4.34e -3F |
| double | 123.23 12312.333 -0.9876324 |
С поддерживает еще один тип констант в дополнение к предопределенным типам данных. Это строки. Все строковые константы заключаются в двойные кавычки, например: «тестовый текст». Не следует путать строки с символами. Одиночный символ заключается в одинарные кавычки, как например: ‘а’. Поскольку строки — это обычные массивы символов, то они будут рассмотрены в разделе сайта массивы.