赞助论坛
  • 2636阅读
  • 0回复

请教do{}while(0)的一些疑问 [复制链接]

楼层直达
yin_c  
发帖
41
精华
0
金币
59
威望
0
贡献
0
好评
0
注册
2011-04-06
楼主    yin_c 发表于: 2011-09-20 22:47:06 
在sunplus的源代码中,有这么一个宏定义:#define OSD1000ISP_STATUS(stat, ir)   do{}while(0)

概括来说
在A.h文件中定义
#define OSD1000ISP_STATUS(stat, ir)   do{}while(0)

在B.c文件中调用
OSD1000ISP_STATUS(OSDISP_REP_IDLE, OSDIR_REPEAT);

请问这个宏定义什么用?比如上面那个B.c文件中调用是具体这么执行?我看do{}while(0)
这个do{}大括号里面什么都没有,难道什么都不执行吗?要是什么都不执行的话这个宏定义有啥意思,以及调用时OSD1000ISP_STATUS(OSDISP_REP_IDLE, OSDIR_REPEAT);括号里面的参数有啥意思?

请教各位,谢谢。

[p:5]