printf用法解决方法

printf用法
#define return_if_fail(p)
if (!(p)) { \
printf("%s:%d Warning: "#p" failed.\n", __func__, __LINE__); \
return; \
}


这是怎样的一种用法?谁给解释下

------解决方案--------------------
__func_:该pinrtf 所在函数的函数名。(char*类型)
__LINE__:该prntf所在的行数(int类型)
现在知道了吧?

------解决方案--------------------
在出错信息中包含定位信息,宏__func__表示出错的函数名,__LINE__表示行号。
还有__FILE__表示文件名等。
------解决方案--------------------
__func__ __LINE__是两个宏, 分别代表宏出现位置所在函数的函数名和宏出现位置在当前文件中的行号
还有__FILE__这个宏表示宏出现位置所处的文件的文件名
------解决方案--------------------
用于我们调试程序
printf("[%s][%s][%d]\n", __FILE__, __func__, __LINE);
即如果这一行代码执行了,则会打印这一行的所处的文件的文件名、所处函数的函数名、当前的行号