C语言宏定义换行符引起的错误解决

单片机通信程序的一段宏定义,提示错误,一直发现不了错误,代码如下:

#define RTS_INIT() \
do { \
RS485PORT = 0; \
RS485DIR = 0; \
} while(0);

提示的信息是while(0)处发现意外标记。可是明明没有错误,一时无法处理。后来发现原来是\后面有看不见的空格,删处后问题解决。