Linux2.6.14.3内核中宏定义 #define DEFINE

来源: 作者: 2006-09-20 出处:pcdog.com

  • linux
  •   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 ;       
      }

    更多内容请看PCdog.com--内核技术专题
    上一篇:教你配置Linux系统安全管理服务
    下一篇:Linux内核编译菜单中相关选项的意义