# predef

защита переменных

## Последовательность вызова

    n = predef()
                oldnew = predef(n)
                oldnew = predef('all')
                oldnew = predef('clear')
                variables_name = predef('names')

## Описание

Специальная функция, используемая для определения "самых старых" переменных в качестве "защищённых". Защищённые переменные нельзя уничтожить. Они не сохраняются командой `save`. "Самые старые" -- это те, которые появляются в конце перечисления `who('get')`.

`predef()` получает количество защищённых переменных.

`predef('a[ll]')` устанавливает все переменные защищёнными, она также возвращает старое и новое значение количества защищённых переменных.

`predef('c[lear]')` снимает защиту со всех, кроме последних 7 переменных. Она также возвращает старое и новое значение количества защищённых переменных.

`predef(n)` устанавливает `max(n,7)` последних переменных в качестве защищённых. Она также возвращает старое и новое значение количества защищённых переменных.

`predef('names')` возвращает вектор строк с именами защищённых переменных.

`predef('clear')` удаляет защищённые переменные из списка.

## Примечания

Переменная `ans`, создаваемая автоматически, когда выражение не присваивается, никогда не защищается командой `predef('all')`.

Количество защищённых переменных устанавливается в файле запуска `SCI/etc/scilab.start`. Пользователь может в установить свои собственные защищённые переменные в пользовательских файлах запуска `SCIHOME/.scilab` и `SCIHOME/scilab.ini`

## Примеры

    errcatch(13, "continue") // Гарантируем, что мы продолжим даже когда "clear a" не сработает
    a = 1;
    predef("all");
    clear a // не работает
    predef("clear")
    clear a // работает

## Смотрите также

- clear
- save
- ans
- файл запуска