你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

C中符号#和##的作用

[复制链接]
power568 提问时间:2016-4-22 11:09 /


符号#和##的作用
1. 仅用于预处理宏扩展,只能在宏定义中使用;
2. #用于将参数转换为字符串;
3 ##用于将两个宏参数连接在一起;
4. 转换顺序:在展开当前宏参数时,若形参中无#和##时,展开宏参数再展开宏;若有在不进行宏参数展开;

#define CONNECT(a,b)         a##b  
#define STR(a)                           #a  
#define TEST(a)                         STR(a)

则:
printf("STR(CONNECT(con,2))=%s\n", STR(CONNECT(con,2)));
printf("TEST(CONNECT(con,2))=%s\n", TEST(CONNECT(con,2)));

输出是:
STR(CONNECT(con,2))=CONNECT(con, 2)
TEST(CONNECT(con,2))=con2

收藏 5 评论9 发布时间:2016-4-22 11:09

举报

9个回答
yanhaijian 回答时间:2016-4-22 13:09:33
##很有用。
watershade 回答时间:2016-4-22 21:15:49
本帖最后由 watershade 于 2016-4-22 21:33 编辑

学习了,这个起初是知道的。可是已经很久没用了。
另外最后一条标准不知道,起初我还以为结果是一样的呐。学习了
党国特派员 回答时间:2016-4-22 22:01:10
长知识了。。。 null.png null1.png null2.png null3.png null4.png
湉湉 回答时间:2016-4-23 21:09:27
#
##  是好东西
df_flying 回答时间:2016-4-24 12:10:49
这个不错 学习了~
2602082487 回答时间:2016-4-24 14:41:02
学习了
风丛林 回答时间:2016-4-24 20:22:15
    学习了
zcl201207 回答时间:2016-4-24 20:31:58
五哥1 回答时间:2016-12-26 00:20:11
学习了,谢谢

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版