首页

文章

C语言中##什么意思,

发布网友 发布时间:2022-02-28 23:52

我来回答

4个回答

热心网友 时间:2022-03-01 01:21

##在C/C++中具有连接字符串的作用。例如:
执行完A ## B后变为AB(连接A和B并去掉空格)。

下面通过具体实例来说明##的工作原理:

假设程序中已经定义了这样一个带参数的宏:
#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

热心网友 时间:2022-03-01 02:39

##用来连接前后两个参数,把它们变成一个字符串。

举例说:
#define Conn(x,y) x##y
int n = Conn(123,456); 结果就是n=123456;
char* str = Conn("asdf", "adf")结果就是 str = "asdfadf";
你给出的宏
SHORT_REC_ADR_INIT(6)相当于{ad_rec[6].slave_address = SPI_AD_DATA_6_BASE;

热心网友 时间:2022-03-01 04:14

宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。
如定义好#define STRING(x) #x之后,下面二条语句就等价。
char *pChar = "hello";
char *pChar = STRING(hello);

##它可以拼接符号(Token-pasting operator),如:
#define paster( n ) printf( "token"#n" = %d\n", token##n )
int token9 = 100;
再调用 paster(9);宏展开后token##n直接合并变成了token9。
整个语句变成了
printf( "token""9"" = %d", token9 );
在C语言中字符串中的二个相连的双引号会被自动忽略,于是上句等同于
printf("token9 = %d", token9);。
即输出token9 = 100

热心网友 时间:2022-03-01 06:05

算是一个连接符号,表示连接成一个东西
比如你调用SHORT_REC_ADR_INIT(hello)

那么宏展开就是
{ad_rec[a].slave_address= SPI_AD_DATA_hello_BASE;}

ps:貌似你的代码里面多空格了

谢谢采纳
视频相册制作软件如何做视频相册? 用word2007自动生成目录后,目录上始终有个“ 更新目录”的框,怎么去... Word2007目录怎么删除正文 手机不能横屏了是怎么回事? 庞贝柱的结构样貌是怎样的? 埃及庞贝柱景点描述 庞贝柱是怎样的历史? 埃及庞贝柱历史追溯 庞贝柱是个什么样的景点? 庞贝柱是为为了答谢谁而建的? 属蛇穿什么转运最旺运 属蛇什么颜色转运最旺 属蛇的人什么颜色转运最旺 英国查理一世时期君主专政的特征 增值税专用发票开错作废证明怎么写 女主为了救男主被拔掉指甲,被活埋,但男主却认错了人,这本小说叫... 什么地方能读到法拉奇的小说男子汉 高级职称有什么待遇 职称高级相当于什么? HUAWEI 华为 AM185 入耳式有线降噪耳机-适用对象 华为FreeBuds Pro有线充版-入耳式真无线动圈主动降噪蓝牙耳机(陶瓷白... HUAWEI 华为 FreeLace Pro 入耳式颈挂式动圈主动降噪蓝牙耳机 曜石黑... HUAWEI 华为 FreeBuds Pro 入耳式真无线动圈主动降噪蓝牙耳机 墨韵白推... 华为Freebuds 3 无线充版半入耳式真无线蓝牙耳机(碳晶黑)-详细介绍... HUAWEI 华为 FreeBuds 悦享版 入耳式无线蓝牙耳机-详细介绍 如何评价华为新旗舰tws耳机freebudspro? HUAWEI 华为 FreeBuds Pro 无线蓝牙耳机推荐 字符串"\\\"ABC\"\\"所占内存字节的长度 怎样挑选千元内的羊绒大衣? 现在思科的CCNA,CCNE,CCIP的考证费分别是多少啊,通过率怎样 长春小飞没有车没有房 碳钢的多久生锈 碳钢多久会生锈 碳钢多长时间会开始生锈 碳钢和铝哪个容易生锈 梦见天宫图是什么意思 光遇2023好友树解锁图鉴 光遇二级节点多少个 ...火柴小女孩》《词语手册》里有很多词语的意思的,求告知 暖融融解释 领淘通淘客助手这个软件怎么样? 淘宝客必备的九大工具有哪些? 电脑里硬盘如何共享怎么实现多台电脑共用一块硬盘 两台电脑一个硬盘两台电脑是否可以同时用一个硬盘 共享电脑硬盘怎样设置局域网电脑硬盘共享 现在下载歌曲好还是不下好 故障码P033D的含义解析 切菜机多功能型切菜机 scanbox三维扫描仪 苹果13没有删除的备忘录怎么恢复? iphone备忘录永久删除怎么恢复?iphone备忘录恢复最近删除文件方法介绍... c语言是干什么的 C语言 里说的 实现 是什么意思? 什么是C语言?有什么用?说的简单点、 有谁能解释下这个C语言说的是什么意思吗? 所谓的c语言到底是什么? 什么是C语言代码,说得简单通俗一点, C语言主要讲的是什么? 什么是C语言?能否说得详细点? 什么叫C语言(要说得超简单易懂啊) C语言是什么? 详细说一下 我的电脑老是蓝屏是怎么回事? 电脑总是蓝屏是什么原因 没有基础的人学JAVA难吗?有没有学历要求? 学习Java需要有什么基础呢?没有基础也可以学好Java吗? 学习JAVA需不需要基础?? 学习Java需要学习什么基础吗?可以直接学吗? 电脑老蓝屏是怎么回事。 JAVA学习的前提需要哪些基础,谢谢! 学习java需要基础吗? 学习Java开发的话,需要有什么基础吗? 软考中级应该选择什么科目? 注册建筑师一级和二级的区别 建筑师不同有什么区别 一级建筑师和一级建造师有何区别?该如何备考? 建筑设计的高级工程师与一级注册建筑师有什么不同? 建筑师和建造师的区别? PMP与PMI的区别PMP与PMI哪个含金量更高 PMP证书和一级注册建造师哪个证书含 PMP报名必须要有项目管理经验吗 大家考pmp的话都是有几年工作经验了 PMP报名表上的项目经验怎么填 项目管理是做什么?我想向这个方向努力 我想考PMP,但好像说要有6年的项目管理经验才行。 PMP项目管理考试申请递交的项目经验证明,会被调查吗,需要什么资料? 最近想考PMp,谁能给点备考经验啊? java中的,堆,栈,还有方法区都是用来放什么的?? php程序员招聘要求有哪些 重庆 软考电子商务设计师在哪里考试啊?报名时间是和中级软考一起的吗? 2011年软考的电子商务设计师考试时间是在什么时候,还有什么时候可以开始报名? 职务证书是职称证书吗 职称证书是什么东西啊?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com