Debug调试宏作用在于,可以在代码运行过程中返回出错信息。
当出现错误时,通过打印功能,将错误代码的文件名及其在文件名中的行号打印出来已达到调试代码的作用。这个功能在大型开源项目里面经常运用到,因为一些逻辑错误是很难查找出来的。
#define LWIP_PLATFORM_ASSERT(x) \
do \
{ printf("Assertion \"%s\" failed at line %d in %s\r\n", x, __LINE__, __FILE__); \
} while(0)//这种宏定义的使用方法在之前博客里面已经说明清楚,为了可以执行多条语句,并且不影响其他地方。
#define LWIP_PLATFORM_DIAG(x) do {printf x;} while(0)
/** if "assertion" isn't true, then print "message",并且说明错误文件和行号 */
#define LWIP_ASSERT(message, assertion) do { if(!(assertion)) \
LWIP_PLATFORM_ASSERT(message); } while(0)
/** if "expression" isn't true, then print "message" and execute "handler" expression */
#ifndef LWIP_ERROR
//防止重复定义
#define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \
LWIP_PLATFORM_ASSERT(message); handler;}} while(0)
#endif /* LWIP_ERROR */