Четвертый BORLAND С++ и его окружение

       

Выражения, допустимые в директивах условного выполнения


В директивах !if и !elif возможно задание выражений; они используют синтаксис, присущий языку Cи. Выражение вычисляется как обычное 32-битовое целое со знаком.

Вы можете вводить числа как десятичные, восьмеричные или

шестнадцатиричные константы. Если вы знаете язык Си, то вы уже

знаете, как нужно задавать константы утилите MAKE: форматы одинаковы. Если вы программируете на ассемблере или на Турбо Паскале,

то рекомендуем вам внимательно проанализировать приведенные ниже

примеры. Ниже приводятся допустимые для утилиты MAKE константы:

4536 # десятичная константа
0677 # восьмеричная константа (различается по начальному нулю)
0x23aF # шестнадцатиричная константа (различается по начальной последовательности 0x)

В выражении может использоваться любой из представленных ниже знаков операций:



Операция Действие

Символы унарных операций:
- унарный минус
~ побитовое дополнение (инверсия всех битов)
! логическое отрицание NOT (0, если операнд ненулевой, 1 - в противном случае)
Символы бинарных операций:
+ сложение
- вычитание
* умножение
/ деление
% остаток
>> сдвиг вправо
<< сдвиг влево
& поразрядное И (AND)
| поразрядное ИЛИ (OR)
^ поразрядное исключающее ИЛИ (XOR)
&& логическое И (AND)
логическое ИЛИ (OR)
> больше чем
" меньше чем
>= больше либо равно
"= меньше или равно
== равенство
!= неравенство
Символ тернарной операции:
?: Операнд перед знаком ? рассматривается как тестовый.

Символы операций имеют тот же самый приоритет, что и в языке

Си. Для группирования операндов в выражении можно использовать

круглые скобки. В отличие от языка Си утилита MAKE может сравнивать строки с помощью обычных операций ==, !=, <, >, >= и =>.

Числовые (например, + или *) операции со строками использовать

нельзя.

Строковые выражения могут содержать пробелы, но в этом случае их нужно заключать в кавычки:

Model = "Medium model"

.

.

.

!if $(Model) == "Medium model"

CFLAG = -mm

!elif $(Model) == "Large model"

CFLAG = -m1

!endif

Вы можете вызвать макрокоманды в выражении; будет распознаваться специальная макрокоманда $d(). После того, как произошло

расширение всех макрокоманд, синтаксис выражения должен соответствовать установленным требованиям.



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