代码之丑(十)——条件编译那些事儿

  C语言出现之初,跨平台是个极大的卖点。于是,我们有机会看到这样的代码:

int sys_old_mmap(struct tcb *tcp) {
long u_arg[6];
#if defined(IA64)
int i, v;
for (i = 0; i < 6; i++)
if (umove(tcp, tcp->u_arg[0] + (i * sizeof(int)), &v) == -1)
return 0;
else
u_arg[i]
= v;
#elif defined(SH) || defined(SH64)
int i;
for (i=0; i<6; i++)
u_arg[i]
= tcp->u_arg[i];
#else
if (umoven(tcp, tcp->u_arg[0], sizeof(u_arg), (char *) u_arg) == -1)
return 0;
#endif // defined(IA64)
return print_mmap(tcp, u_arg);
}

it知识库代码之丑(十)——条件编译那些事儿,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。