C语言中编写宏函数时提示如下错误
error: expected unqualified-id before ‘do’ do{ error: expected unqualified-id before ‘while’ }
#define DEFINE_FUNC_NAME() \
do{ \
printf("%s %d\r\n", __FUNCTION__, __LINE__); \
my_func(&a, b, c, __FILE__, __LINE__); \
}while(0)
解决方案:
#define DEFINE_FUNC_NAME() \
do{ \
printf("%s %d\r\n", __FUNCTION__, __LINE__); \
my_func(&a, b, c, __FILE__, __LINE__); \
}while(0)
在宏函数中:
反斜杠可以连接跨行代码,但中间不可以间隔回车,除非回车后也跟反斜杠'\',但这样毫无意义