这些宏定义都不需要了