MOV <$N(tmp1)> 100
MOV <$S(tmp2)> I<$N(tmp1)>
sendmsg 1 <$S(tmp2)>,,,
MOV <$N(tmp1)> 200
MOV <$S(tmp2)> <$N(tmp1)>
sendmsg 1 <$S(tmp2)>,,,
MOV <$N(tmp3)> 300
MOV <$S(tmp4)> 任意非变量字母<$N(tmp3)>
sendmsg 1 <$S(tmp4)>,,,
MOV <$N(tmp3)> 400
MOV <$S(tmp4)> <$N(tmp3)>
sendmsg 1 <$S(tmp4)>,,,
上面的输出居然是:
I100,,,
I100,,,
任意非变量字母300,,,
400,,,
而正常应该输出的是:
I100,,,
200,,,
任意非变量字母300,,,
400,,,
-----------------------------------------我是分割线-----------------------
这问题坑了我半个小时,,原来是BUG。如果S变量复制的内容是以变量名比如U、I这类开头,那么后面就不能再赋值了,值会永久固定!!!N和STR变量没有试,你们可以试试。比如<$S(tmp2)>如果内容为Sxxxx,那么这个<$S(tmp2)>将永远不能再赋值了。
补充内容 (2025-9-20 00:09):
简单一句话,<$S()>变量不能为U123,I11等类似内置变量的内容。这个也许不用修复,但是不知道的人会被坑,以后不用$S变量即可。 |