changes:ignore .so
improved:todo:如何用宏实现类似于PHP中的$$val,$$func()可变变量
changes:use assert