改进了下macro