当前位置:  技术问答>linux和unix

请教高人:下面一段代码中的__ret_gu语句做何用途,还有switch语句的default分支:__get_user_x()中的第一个参数“X”好像未声明,如何编

    来源: 互联网  发布时间:2015-09-16

    本文导语:  #define get_user(x,ptr) ({ int __ret_gu,__val_gu; switch(sizeof (*(ptr))) { case 1:  __get_user_x(1,__ret_gu,__val_gu,ptr); break; case 2:  __get_user_x(2,__ret_gu,__val_gu,ptr); break; case 4:  __get_user_x(4,__ret_gu,__val_gu,ptr); break; ...

#define get_user(x,ptr)
({ int __ret_gu,__val_gu;
switch(sizeof (*(ptr))) {
case 1:  __get_user_x(1,__ret_gu,__val_gu,ptr); break;
case 2:  __get_user_x(2,__ret_gu,__val_gu,ptr); break;
case 4:  __get_user_x(4,__ret_gu,__val_gu,ptr); break;
default: __get_user_x(X,__ret_gu,__val_gu,ptr); break;
}
(x) = (__typeof__(*(ptr)))__val_gu;
__ret_gu;
})

调用上下文:
static int count(char ** argv, int max)
{
int i = 0;

if (argv != NULL) {
for (;;) {
char * p;
int error;

error = get_user(p,argv);
if (error)
return error;
if (!p)
break;
argv++;
if(++i > max)
return -E2BIG;
}
}
return i;
}

|
up!也是一个宏

|
猜测是将函数的返回值放到寄存器里。因为汇编可以这样作为返回值。
也许用“被调函数清栈”的编译方式,可以这样作为函数返回的方式吧。

    
 
 

您可能感兴趣的文章:

  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 请教:system("C:\python2.4\python.exe C:\aa.py");该语句有何错误?为什么运行界面一闪就消失了并且没有运行完,请给出正确语句!
  • 请教一段shell语句的作用
  • 请教个shell编程语句的问题。
  • 请教一个很简单的语句
  • 请教SHELL语句如何获取程序的安装路径?
  • 请教一个shell语句:文件比较问题|急~~~
  • 关于Oracle中的sql语句的疑问,向大家请教。
  • 请教各位前辈,这条语句是什么意思?
  • 请教:在linux下如何为一个结构体分配空间?语句该怎么写?
  • 向各位前辈请教一个关于switch语句的问题,谢谢:)
  • 请教一个shell中调用sqlplus,其中sql语句中有$符号,需要转义,不知道怎么写转义才对,比较急,在线等,谢谢!
  • 请教结构体定义--LINUX驱动程序中语句
  • 小问题请教高手:try中的语句为何不执行!!!
  • 请教一条SQL语句。
  • 向高手请教import语句用法!!!
  • 请教一条Sql语句!! 在线等候!!
  • 高分请教各位高人!!!!
  • 请教各位高人,我的一个JAVA小程序中为何会出现Class GirdLayout not found.
  • 请教高人,在unix中怎样使一般进程暂时获得管理员的权限,急!!谢谢
  • 关于jsp开发,请教高人!!!
  • 请教高人:一个数据类型转换的问题!!!
  • 请教高人:这句话是什么意思呀?
  • 请教snmp的高人!
  • 我看一个头文件,不知道“__THROW”是什么意思,请教高人!
  • 请教高人:Linux下无法访问其它网段IP的问题.
  • 请教高人。
  • 各位高人,想请教一下,我的虚拟机为什么无法启动
  • 请教高人来解释一下小弟关于poll()函数的疑惑
  • 请教高人make 的-j选项问题
  • 请教高人:同一个套接字(做客户端)连接到server后在不同子进程里使用能否不采取互斥措施收发?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教这种循环的执行过程 iis7站长之家
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题
  • 请教unix常用命令命令问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3