生成文件预处理表达式可以使用在常数值操作的运算符,命令的退出、字符串、宏和文件系统路径的代码。若要计算该表达式,预处理器首先扩展宏,然后执行命令,然后执行操作。操作计算按显式括号内,然后分组的顺序按运算符的优先级顺序。结果是一个常数值。
DEFINED 运算符是宏名称上使用的逻辑运算符。该表达式 DEFINED(macroname) 为 true,则 macroname 定义,因此,即使它没有已分配的值。与 !IF 或 !ELSE IF 的组合DEFINED 与 !IFDEF 或 !ELSE IFDEF等效。但是,与这些指令,DEFINED 可用于复杂的表达式。
EXIST 运算符是文件系统路径上使用的逻辑运算符。如果 路径 存在,EXIST(路径) 为 true。从 EXIST 的结果可用于二进制表达式。如果 path 包含空格,则用双引号将它引起来。
若要比较两个字符串,请使用相等 (==) 运算符或不等运算符 (!=) 运算符。用双引号将字符串引起来。
整型常数可以为数字求反 (–),您的求补 (~) 和逻辑求反 (!) 使用一元运算符。
表达式可以使用下列运算符。组织成组等于优先级的运算符,并且组列表按优先级的顺序。一元运算符与该操作的右侧。等于优先级的一元运算符从左至右关联操作。
运算符 |
描述 |
---|---|
DEFINED(macroname) |
导致 macroname当前定义状态的逻辑值。 |
EXIST(path) |
生成文件中存在的逻辑值。路径。 |
! |
二元逻辑 NOT。 |
~ |
一元"的补充。 |
- |
一元求反。 |
* |
乘法。 |
/ |
除法。 |
% |
modulo (余数)。 |
+ |
加法。 |
- |
减法。 |
<< |
按位"转换左侧。 |
>> |
按位"转换。 |
<= |
小于或等于。 |
>= |
大于或等于。 |
< |
小于。 |
> |
大于。 |
== |
相等。 |
!= |
不相等。 |
& |
按位"与"。 |
^ |
按位"异或"。 |
| |
按位或。 |
&& |
逻辑与。 |
|| |
逻辑或。 |
![]() |
---|
按位"异或"运算符 (^) 与转义字符相同,并且必须进行转义为 ^^),而在表达式时。 |