# Константы

Константы позволяют задавать имена значениям и обращаться к ним позже.

### Именование

Имена константам можно задавать произвольные, но при этом соблюдать следующие правила:

1. Имя начинается с буквы латинского алфавита, дальше в произвольном порядке идут буквы латинского алфавита, цифры и символ '_'.
2. Имена констант не должны совпадать с названиями клавиш и именами предопределённых свойств и макрофункций.

### Типы

Константы могут быть трех типов - целое число, вещественное (разделитель целой и дробной частей - точка) или строка.

Целочисленные константы: `NNN` - 10-ричная константа, `0NNN` - 8-ричная константа, `0xNNN` - 16-ричная константа.

Целочисленные константы 64-разрядные.

Константы с плавающей точкой - двойной точности 64-разрядные (double).

### Область действия

При старте FAR считывает константы из базы macros.db (таблица constants).

### Представление в базе

В базе константы располагаются в таблице `constants`.

Каждая константа имеет имя, значение и тип. Значение в базе всегда хранится в виде текста. Поле type уточняет тип содержимого в поле value:

- `text` - строковые константы
- `real` - константы с плавающей точкой
- `integer` - целочисленные константы

Преобразование чисел с плавающей точкой в строку осуществляется по формату "`KeyMacros/CONVFMT`". По умолчанию "`%.6g`"

### Пример

Пример описания вещественной константы PI и применения константы FIB_PASSWORD (0x00000002) для функции prompt().

    <constants>
      <constant name="FIB_PASSWORD", value="0x00000002", type="integer"/>
      <constant name="PI" value="3.14159265358979323846" type="real"/>
    </constants>

    <keymacros>
      <macro area="Editor" key="CtrlP" flags="DisableOutput">
        %s=prompt("Password","Input password:",FIB_PASSWORD);
        $Text %s
      </macro>
    </keymacros>

Смотрите также:
Переменные