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)
在宏函数中:
反斜杠可以连接跨行代码,但中间不可以间隔回车,除非回车后也跟反斜杠'\',但这样毫无意义
文章讲述了在C语言中定义宏函数时遇到的编译错误,主要问题是期望在do和while之前看到未限定的标识符。解决方案是正确使用反斜杠连接跨行代码,确保在需要的地方避免空回车。

1万+

被折叠的 条评论
为什么被折叠?



