使用do{...}while(0)健全实用宏，简化了几个宏工具