绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
2.6 内核中宏定义 #define DEFINE(sym, val)的问题 ?
2020-05-18 18:13:48

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

#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。

/*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=;
DEFINE(Ti,8);
printf("\n The value of Ti is:%d\n",Ti);
return ;
}

文章来源CU社区:2.6 内核中宏定义 #define DEFINE(sym, val)的问题 ?

分享好友

分享这个小栈给你的朋友们,一起进步吧。

内核源码
创建时间:2020-05-18 13:36:55
内核源码精华帖内容汇总
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 飘絮絮絮丶
    专家
戳我,来吐槽~