" #sym " %0 " #val : : "i" (val)) 没弄清它的用法,于是用如下函数做了一下试验,所得结果更是让人不解。 宏定义中从"\n->"中的"-"开始的后续部分被编译器忽略。gcc提示为Wa,Linux,Unix,下载,开源,MySQL,Oracle,Ubuntu,Shell,Redhat,Suse" />
设置首页  |   加入收藏  |  联系我们   
您的位置: 主页>Linux知识>内核研究>正文
Linux2.6内核中宏定义#define DEFINE
文章来源:  编辑:  发布时间:2007-10-29

linux2.6.14.3 内核中有如下宏定义,
CODE:


#define DEFINE(sym, val) \
        asm volatile("\n->" #sym " %0 " #val : : "i" (val))
没弄清它的用法,于是用如下函数做了一下试验,所得结果更是让人不解。
宏定义中从"\n->"中的"-"开始的后续部分被编译器忽略。 gcc提示为Warning: rest of line ignored; first character is '-.
(采用如下格式编译:gcc -o tf tf.c)
程序打印结果为:0。

CODE:


  /*tf.c*/
  #include "stdio.h"
  #define DEFINE(sym,val) \
        asm volatile("\n->" #sym " %0 " #val : :"i" (val))
  int main(int argc,char* agrv[])
  {
        int Ti=0;
        DEFINE(Ti,8);
        printf("\n The value of Ti is:%d\n",Ti);
        return ;       
  }

(e129)


 
Tags:定义 val Ti DEFINE int n- 如下 of tf.c 结果 编译 gcc
Google
 
上一篇: 巧用Linux2.6内核新功能配置文件ACL   下一篇: 关于Linux内核级后门的原理和简单实战
【返回顶部】 【打印】 【大】 【中】 【小】 【关闭】

 我来说两句
用户名: 新注册) 密码: 匿名评论 [论坛讨论]
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 相关文章
 热门文章

 
版权所有  2005-2006  Linux集中营  闽ICP备07500055号