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 ; }(出处:http://www.sheup.com)