当前位置: 首页 > 文档资料 > TJS2 参考手册 >

预处理指令(preprocessor)

优质
小牛编辑
131浏览
2023-12-01

 TJS2 可以对 条件编译表达式 ( 相当于 C 中的 #if 和 #endif 的东西 ) 进行处理。也就是说,可以在脚本(script)被实际执行之前进行处理,依照条件只解释脚本中想要解释的一部分,而对其他部分不进行解释。
 件编译表达式的书写风格和 C 中的预处理指令不同,是在哪里都能写的自由风格。并不是像 C 中那样每行只能写一条指令。

@set 指令

 @set 指令会对条件编译表达式求值,并将结果忽略掉。格式如下。

@set(表达式)


 在“表达式”那个位置书写条件编译表达式。这里可以使用下面的这些运算符。

,=!===||&&|^&<><=>=+-%*/!+-()


 这些运算符的作用请参考 表达式和运算符 。但是,条件编译表达式中只能处理整数。
 可以使用任意的变量和常量。变量名的命名和 记号 中的变量和常量适用相同的命名规则。
 但是,预处理指令中使用的变量和 TJS2 脚本中使用的变量名并不互相影响 ( 并不共享同一个名字空间 )。

@if 指令, @endif 指令

 @if 会对条件编译表达式求值,结果为 0 的话,到下一个 @endif 为止,这之间的脚本不会被解释。结果不是 0 则会解释这些脚本。
 格式如下。

@if(表达式)...@endif


在“表达式”那个位置指定条件编译表达式。 @if ~ @endif 可以欠套。

例:
@if(flag==0)//还没有被代入任何值的变量在这里会被看作是0
@set(flag=1)
****
@endif
//↑写在****部分的脚本只会被解释一次

@if(version>=0x02040009)
@if(flag)
****
@endif
@endif
//↑version在0x02040009(2.4.9)以上且flag不为0的时候会解释****部分的脚本

已定义的变量

 version 变量代表当前的 TJS2 的版本。

 该变量为16进制的 0x0XYYZZZZ 形式的数值, X 的部分是主版本号,YY 的部分是副版本号, ZZZZ 是发布序号。例如 0x02040009 的话,版本就是 2.4.9 。