社区
C语言
帖子详情
LWIP_PLATFORM_DIAG(x) do { _dbg_print x; } while(0) 这个函数具体怎么实现的?
jenglev
2009-03-04 09:45:37
很迷惑,希望大虾能正解.
...全文
344
9
打赏
收藏
LWIP_PLATFORM_DIAG(x) do { _dbg_print x; } while(0) 这个函数具体怎么实现的?
很迷惑,希望大虾能正解.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ctan
2009-03-04
打赏
举报
回复
[Quote=引用 8 楼 yutaooo 的回复:]
C/C++ code
do {
} while(0)
是设计宏时的惯用手法。记住就好了。当宏是由多条语句(而不是多个表达式)组成的时候,一般要使用 do...while 把它们复合成一个单语句。这样,在 if 语句中使用这个宏才不会出问题。
[/Quote]
学习中
yutaooo
2009-03-04
打赏
举报
回复
do {
} while(0)
是设计宏时的惯用手法。记住就好了。当宏是由多条语句(而不是多个表达式)组成的时候,一般要使用 do...while 把它们复合成一个单语句。这样,在 if 语句中使用这个宏才不会出问题。
猫已经找不回了
2009-03-04
打赏
举报
回复
宏就是定义用一个名字去代替名外一个名字.
jenglev
2009-03-04
打赏
举报
回复
是不是就用于输出一些信息啊?
fox000002
2009-03-04
打赏
举报
回复
看起来是运行一次 _dbg_print ,然后继续执行后面的代码了
hhyttppd
2009-03-04
打赏
举报
回复
比如 LWIP_PLATFORM_DIAG(("your debug message"));
hhyttppd
2009-03-04
打赏
举报
回复
我没用过这个。
你把 x写成("your debug message")不就是函数调用了?
jenglev
2009-03-04
打赏
举报
回复
关于宏的运行过程能不能说一下呢 ?谢谢
ForestDB
2009-03-04
打赏
举报
回复
这只是个宏而已,而里面的_dbg_print估计也是个宏。
放开
lwip
打印的一种改法
#if 0 #define
LWIP
_DEBUGF(debug, message) do { \ if ( \ ((debug) &
LWIP
_
DBG
_ON) && \ ((debug) &
LWIP
_
DBG
_TYPES_ON) && \ ...
LWIP
的调试打印分析
#define
LWIP
_DEBUGF(debug, message) do { if ( ((debug) &
LWIP
_
DBG
_ON) && ((debug) &
LWIP
_
DBG
_TYPES_ON) && ((s16_t)((debug) &
LWIP
_
DBG
_MASK_LEVEL) >=
LWIP
_
DBG
_MIN_LEVEL)) {
LWIP
_
PLATFORM
_
DIAG
(message); if ((.
lwip
调试信息输出tcp服务器,关于开启
lwIP
协议栈的调试输出
LWIP
_DEBUGF
关于开启
lwIP
协议栈的调试输出
LWIP
_DEBUGF[复制链接]我们在分析
lwIP
协议栈的时候,会经常看到
LWIP
_DEBUGF()这个
函数
的身影。我想
lwIP
的作者可能为了便于人们去学习和使用
lwIP
而花了不少时间添加的。其实对于初学者来说,要把
lwIP
协议栈分析清楚不是一件容易的事情,尤其是对TCP/IP协议原理不是很了解的人。文件较多,
函数
较多,宏较多,调用关系相比一般的C程序来说较复杂。...
LwIP
调试输出
LwIP
调试输出有3个开关:
LWIP
_
DBG
_ON:总开关
LWIP
_
DBG
_TYPES_ON:类型开关
LWIP
_
DBG
_MIN_LEVEL:等级开关
LWIP
_
DBG
_TYPES_ON和
LWIP
_
DBG
_MIN_LEVEL是在
lwip
opt.h由用户定义的 一个调试类型的debug值可以是这样形式定义的:
LWIP
_
DBG
_ON |
LWIP
_
DBG
_TYPES_ON |
LWIP
LWIP
之
lwip
_send
函数
代码如下:
int
lwip
_send(
int
s, const void *data, size_t size,
int
flags) { struct
lwip
_sock *sock; err_t err; u8_t write_flags; size_t written;
LWIP
_DEBUGF(SOCKETS_DEBUG, ("
lwip
_send(%d, data=%p...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章