Linux2.6.14.3核心中宏定義 #define DEFINE(轉)

BSDLite發表於2007-08-11
Linux2.6.14.3核心中宏定義 #define DEFINE(轉)[@more@]  linux2.6.14.3 核心中有如下宏定義,

CODE:

#define DEFINE(sym, val)
asm volatile(" ->" #sym " %0 " #val : : "i" (val))

沒弄清它的用法,於是用如下函式做了一下試驗,所得結果更是讓人不解。
宏定義中從" ->"中的"-"開始的後續部分被編譯器忽略。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(" ->" #sym " %0 " #val : :"i" (val))

  int main(int argc,char* agrv[])
  {
int Ti=0;
DEFINE(Ti,8);
printf(" The value of Ti is:%d ",Ti);
return ;
  }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-947553/,如需轉載,請註明出處,否則將追究法律責任。

相關文章