问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求助C语言 宏定义 (*(byte*)&(##x)+1)

发布网友 发布时间:2024-10-19 15:01

我来回答

5个回答

热心网友 时间:2024-10-21 21:34

##在宏代换是这样处理的:
each ## is deleted, together with any white space on either side.--C89
翻译过来也就是每个##都会被删掉,包括在它两边的空格。

##不是连接符,就像你说的##“一般”用作连接符,注意是“一般”,这是它的典型用法。这种用法也是根据他的这一特性来的。

#define A(M) M ## 87
int i = A(19); 这样的,##前后都有空格,最后宏代换完,就是i = 1987。

热心网友 时间:2024-10-21 21:31

只是一个代号吧~你最好把题目也发来啊

热心网友 时间:2024-10-21 21:33

根据第一行替换可知
lowbyte(X)会变成: ( *(unsigned char *) &(##X) +1 )
就是说对 (##X)取地址,然后强制类型转换成一个字符指针类型,然后定位在这个位置的低字节上

通过分析可知,##X表示的是一个变量或者是另外的一个宏替换规则

热心网友 时间:2024-10-21 21:34

#define A(a,b) a##b

预处理运算符##扩展了一种连接实际参数的手段。

比如:
A(k,1) 宏展开之后 k1
A(k,2) 展开之后 k2

热心网友 时间:2024-10-21 21:32

## 连接符与# 符
## 连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所 谓的子串(token)就是指编译器能够识别的最小语法单元。具体的定义在编译原理里有详尽的解释,但不知道也无所谓。同时值得注意的是#符是把传递过来 的参数当成字符串进行替代。下面来看看它们是怎样工作的。这是MSDN上的一个例子。
假设程序中已经定义了这样一个带参数的宏:
#define paster( n ) printf( "token" #n " = %d", token##n )
同时又定义了一个整形变量:
int token9 = 9;
现在在主程序中以下面的方式调用这个宏:
paster( 9 );
那么在编译时,上面的这句话被扩展为:
printf( "token" "9" " = %d", token9 );
注意到在这个例子中,paster(9);中的这个”9”被原封不动的当成了一个字符串,与”token”连接在了一起,从而成为了token9。而#n也被”9”所替代。
可想而知,上面程序运行的结果就是在屏幕上打印出token9=9
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
友情就像碳酸是什么意思? 江西省大余到广州坐汽车要多久,哪个人知道告诉我。拜托!!! 从武汉坐火车到江西大余怎样坐? 5 5 5 1=24在中间填四则运算符号怎么填? 比如是5*5那些的 可以用括号... 1 5 5 5=24 5 1 5 5 =24 填上运算符号与括号 使算式成立 ...1四个数字,用加,减,乘,除,括号串联起来,结果得24,每个数字只能用一次... C语言 中间的那段代码输入空格后按回车没反应啊 C语言求解 统计字符的个数 请问我的代码怎么修改才能去掉输入前的空格... 英雄联盟新界面怎么说话,找不到发射的按钮啊 货拉拉企业版和个人版的区别有哪些? 偷懒、不爱劳动的人如何激励自己上进? 冀贡泉冀贡泉生平故事 偷懒的近义词 华为荣耀6电池能用多久,坏了怎么办 农历二月二十出生的人命运 华为荣耀6plus电池使用情况是否正常 华为荣耀6手机电池怎么那么不耐用,今天上午只开了wifi,又没玩手机... 十日观察法的意思介绍(十日观察法什么意思) 耍把的成语耍把的成语是什么 配菜最多最全的毛血旺 风起霓裳曹王的结局是什么揭秘 曹王扮演者张晚意个人资料 ...必修一,分类好,匀加速直线运动公式,运减速直线运动公式,匀变速... 春天这篇短文写了春天的什么事物? ...帮忙解释一下这个图,本人一点也看不懂。最好详细一些。拜托了。_百... ...不懂,拜托了,麻烦尽可能详细一点,我多追加点分啊! ...想请哪位大师用紫微斗数指点我下2011年婚姻和事业的情况,拜托... 巴蜀丽景怎么样?好不好?值不值得买? 电脑快捷键冲突_如何查看电脑快捷键冲突 三星的笔记本电脑 怎么关闭触摸键盘啊 打字的时候老是触碰到。太... 买了一个二手洗衣机怎么彻底清洗和消毒求解 Linux引导程序详解linux的引导程序 war3 看不到熊猫酒仙 途胜电子防盗系统 全新途胜车防盗系统如何? 洗澡间墙面打磨怎么处理 懒货怎么造句 下眼睫毛怎么刷妆 睫毛很密应该如何刷睫毛? 高中生妈妈:小学阶段的非学业能力,才是决定孩子走多远的关键 洗澡间旧墙面翻新最佳方法 鸡西酒吧消费 都多钱 比如怡园 罗曼蒂克 要酒吧 不要迪厅?啤酒一般多钱... 如何挽救老化的白墙面 beehoney蜂蜜价格 我的户口所在地在衡水市,可我男友的户口在衡水市景县,请问我们可以去衡 ... 景县第1胎男孩,第2胎怎么上户口? 我是部队的四级军士长请问在景县如何分期付款买房 ...的内能是分子平均动能与分子平均势能的和B.温度越高,物体的分子_百 ... 张一山近期来唐山? 属龙男(1998年5月8号)和属羊女(1991年11月1日)合适在一起吗