LWIP_PLATFORM_DIAG(x) do { _dbg_print x; } while(0) 这个函数具体怎么实现的?

jenglev 2009-03-04 09:45:37
很迷惑,希望大虾能正解.
...全文
344 9 打赏 收藏 转发到动态 举报
写回复
用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 语句中使用这个宏才不会出问题。
  • 打赏
  • 举报
回复
宏就是定义用一个名字去代替名外一个名字.
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估计也是个宏。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧