В Переменные раздел CAPL, объявлены глобальные переменные.Определенные здесь идентификаторы имеют область действия программы.Глобальная переменная может быть доступна любой функции всей вашей программы после ее объявления.
variables
{
int xyz; // Identifier 'xyz' declared in an program scope
}
Второй идентификатор объявлен в области действия функции и не отличается от предыдущего идентификатора.Область действия функции имеет больше внутренней области действия.
void temp()
{
int xyz; // Identifier 'xyz' declared in an function scope
xyz=5;
write("Inner scope -> d%",xyz);
}
В CAPL установлены правила области действия типа «C», поэтому: Если два идентификатора имеют одинаковое имя, но различную область действия, идентификатор во внутренней области действия скрывает идентификатор во внешней области видимости.
В этом примере объект xyz в функции temp скрывает глобальную переменную xyz:
on key * // call event
{
xyz=10;
write("Outer Scope -> %d",xyz); // Program Scope
temp(); // Function Scope
}
Вывод:
- "Внутренняя сфера -> 5 "
- "Внешняя сфера -> 10 "