The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

5.7 Другой подкласс — Константы

5.7 Другой подкласс — Константы

Предыдущая  Содержание  Следующая V*D*V

Кто любит набирать значение π или другие математические константы? Позаимствуем информацию из hoc Кернигана и Пайка [K&P84] и определим некоторые константы для нашего калькулятора. Во время инициализации распознавателя должна вызываться следующая функция:

 

void initConst (void) {

    static const struct Var constants [] = { /* like hoc */

        { &_Var, "PI", CONST, 3.14159265358979323846 },

        ...

        0 };

 

    const struct Var * vp;

 

    for (vp = constants; vp -> _.name; ++ vp)

        install(vp);

}

 

Переменные и константы по большей части одинаковы: имеют имена и значения и живут в таблице символов; возвращают свои значения для использования в арифметическом выражении; и не должны быть удаляться при удалении арифметического выражения. Тем не менее, константам нельзя делать присвоение, так что следует договориться о новом значении CONST для маркера, которое распознаватель принимает в factor() так же как VAR, но не разрешает находиться на левой стороне присвоения в stmt().

 

Предыдущая  Содержание  Следующая