字符串整体传递运算符是一对尖括号<>,用它括起来的内容将作为一个字符串来进行形式参数的整体替换。在宏引用时,如果实参内包含逗号、空格等间隔符,则必须使用该操作符,以保证实参的完整性。如果实参是某个具有特殊含义的字符,为了使它只表示该字符本身,也需要用该运算符括起来。
假设有下面定义字符串的宏DEFMSG,
DEFMSG MACRO MSG DB '&MSG', 0DH, 0AH, '$' ENDM
那么,使用和不使用该运算符的引用宏及其宏扩展如下所示:
DEFMSG <Are you ready?> … DEFMSG Are you ready?
在引用宏时,如果实参中含有特殊字符,而又要该特殊字符当作普通字符来出来,那么,就必须在该特殊字符前加上字符转义运算符“!”。
下面不使用和使用字符转义运算符的宏引用语句及其宏扩展的结果:
DEFMSG <Input one number(>90):> … DEFMSG <Input one number(!>90):>
在引用宏时,使用计算表达式运算符“%”表示把其后面表达式的结果当作实参进行替换,而不是该表达式的整个式子。
下面使用和不使用计算表达式运算符的宏引用语句及其宏扩展的结果:
DEFMSG %200+23-100 … DEFMSG 200+23-100