硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2624|回复: 5
收起左侧

[其它] c 语言用宏如何实现两个 字符串拼接

[复制链接]

5

主题

10

回帖

25

积分

新手上路

积分
25
发表于 2019-4-18 23:13:31 | 显示全部楼层 |阅读模式
如下:
#define  SW_VERSION    "V0.03"
#define  MODULE_NAME    "XG10"

需要  实现PRO_NAME_STRING     等于“XG10_V0.03”

尝试1:
#define  PRO_NAME_STRING   SW_VERSION#"_"#MODULE_NAME   

结果:
编译错误


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-4-19 00:11:48 | 显示全部楼层
拼接符是##

直接拼接宏定义不行吧,拼接出的是未定义的,直接拼接字符串倒是没问题
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-4-19 01:20:54 | 显示全部楼层
测试了下,原来简单的一匹

#define  SW_VERSION    "V0.03"
#define  MODULE_NAME    "XG10"

#define  PRO_NAME_STRING   SW_VERSION"_"MODULE_NAME   
回复

使用道具 举报

23

主题

1403

回帖

1472

积分

至尊会员

积分
1472
发表于 2019-4-19 12:15:32 | 显示全部楼层
eric2013 发表于 2019-4-19 01:20
测试了下,原来简单的一匹

#define  SW_VERSION    "V0.03"

竟这么省事,之前一直用的##
回复

使用道具 举报

5

主题

10

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2019-4-19 23:21:45 | 显示全部楼层
eric2013 发表于 2019-4-19 01:20
测试了下,原来简单的一匹

#define  SW_VERSION    "V0.03"

这个方法好像不支持 gcc 的编译!
keil 和iar 貌似是支持的!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-4-20 01:41:29 | 显示全部楼层
mksu 发表于 2019-4-19 23:21
这个方法好像不支持 gcc 的编译!
keil 和iar 貌似是支持的!

GCC也没问题

QQ截图20190420014053.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 05:09 , Processed in 0.191521 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表