Целочисленные выражения в языке IDL
Целочисленные выражения в языке IDL составляются из именованных целочисленных констант, целочисленных литералов, операторов (см. таблицу ниже) и группирующих круглых скобок.
Пример использования целочисленных выражений:
const UInt8 itemHeaderLen = 2;
const UInt8 itemBlockLen = 4;
const UInt8 maxItemCount = 0X10;
const UInt64 maxLen = (2 << 3) + (itemHeaderLen + itemBlockLen * 4) * maxItemCount;
interface {
CopyPage(in array<UInt8, 4 * maxLen> page);
}
Если при вычислении выражения возникнет целочисленное переполнение, генератор исходного кода, использующий IDL-файл, завершит работу с ошибкой.
Сведения об операторах целочисленных выражений в языке IDL
Синтаксис | Операция | Приоритет | Ассоциативность | Особенности |
---|---|---|---|---|
| Смена знака | 1 | Нет | Нет. |
| Побитовое отрицание | 1 | Нет | Нет. |
| Возведение в степень | 2 | Нет | Имеет следующие особенности:
|
| Умножение | 3 | Левая | Нет. |
| Целочисленное деление | 3 | Левая | Имеет следующие особенности:
|
| Остаток от деления | 3 | Левая | Имеет следующие особенности:
|
| Сложение | 4 | Левая | Нет. |
| Вычитание | 4 | Левая | Нет. |
| Битовый сдвиг влево | 2* | Нет | Имеет следующие особенности:
|
| Битовый сдвиг вправо | 2* | Нет | Имеет следующие особенности:
|