转自:http://blog.youkuaiyun.com/liyongming1982/article/details/6663031
原来是因为\ 后面多了一个空格
附上一个刚刚写得调试用的例子:
#define desay_debug(_string,myValue) \
do{\
c_snprintf(desay_info, \
250 - 1, \
"\ndesay: File: %s Line#: %d Func: %s()\n !!!:message is %s value is %d\n", \
__FILE__, \
__LINE__, \
__func__, \
_string, \
myValue); \
desayEvent.ui4_msg_id=DESAY_MESSAGE_ID;\
desayEvent.ui4_data1=(UINT32)&desay_info[0];\
a_am_get_app_handle_from_name(&h_app_desay,"homepage");\
c_app_send_msg(h_app_desay,0,&desayEvent,sizeof(DESAY_MSG_T),NULL,NULL);\
}while(0)
来自IBM网页的解释。。
Solution: The backslash (\) character is used as the continuation character to continue #define statements and strings to the next line. GCC expects the backslash character to be the very last character on the line. This warning indicates that there is a space after the backslash. Delete the space and any other characters that come after the backslash.