trureno
驱动牛犊
驱动牛犊
  • 注册日期2002-12-04
  • 最后登录2005-03-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1188回复:2

帮忙看看这个宏是什么意思

楼主#
更多 发布于:2004-04-15 16:01
#define __syscall_return(type, res) \\
do { \\
if ((unsigned long)(res) >= (unsigned long)(-125)) { \\
errno = -(res); \\
res = -1; \\
} \\
return (type) (res); \\
} while (0)

do{}while(0)什么时候结束循环,看不懂

这个宏在系统调用结束返回是用到的,参照下面的代码
#define _syscall0(type,name) \\
type name(void) \\
{ \\
long __res; \\
__asm__ volatile (\"int $0x80\" \\
: \"=a\" (__res) \\
: \"0\" (__NR_##name)); \\
__syscall_return(type,__res); \\
}
lingzjl
驱动牛犊
驱动牛犊
  • 注册日期2001-10-06
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-15 18:00
do{***}while(0)
就等于
{***}
超级肥雀
rainyss
驱动牛犊
驱动牛犊
  • 注册日期2004-04-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-16 20:31
倒,看来楼主连C都没怎么学过.
游客

返回顶部