Руководство по языку B.Pascal 7

Подстановка констант множественного типа


Когда правая часть оператор in является константой множест- венного типа, компилятор генерирует включение проверки с помощью команд CMP. Такие поставляемые проверки более эффективны чем код, генерируемый в противном случае соответствующими булевскими выра- жениями с использованием операций отношения. Например, оператор:

if ((Ch >= 'A') and (Ch <: 'Z')) or ((Ch >= 'a') and (Ch <= 'z')) then ...;

менее читаем и менее эффективен чем

if Ch in ['A'..'Z', 'a'..'z'] then ...;

Поскольку свертывание констант применяется к константам мно- жественного типа также как к константам других типов, можно ис- пользовать описания const без потери эффективности.

const Upper = ['A'..'Z']; Lower = ['a'..'z']; Alpha = Upper + Lower;

С учетом данных описаний оператор if генерирует тот же код, что и в случае предыдущего оператор if:

if Ch in Alpha then ... ;



Содержание раздела