mksu 发表于 2019-4-18 23:13:31

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

如下:
#defineSW_VERSION    "V0.03"
#defineMODULE_NAME    "XG10"

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

尝试1:
#definePRO_NAME_STRING   SW_VERSION#"_"#MODULE_NAME   

结果:
编译错误


eric2013 发表于 2019-4-19 00:11:48

拼接符是##

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

eric2013 发表于 2019-4-19 01:20:54

测试了下,原来简单的一匹

#defineSW_VERSION    "V0.03"
#defineMODULE_NAME    "XG10"

#definePRO_NAME_STRING   SW_VERSION"_"MODULE_NAME   

missfox 发表于 2019-4-19 12:15:32

eric2013 发表于 2019-4-19 01:20
测试了下,原来简单的一匹

#defineSW_VERSION    "V0.03"


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

mksu 发表于 2019-4-19 23:21:45

eric2013 发表于 2019-4-19 01:20
测试了下,原来简单的一匹

#defineSW_VERSION    "V0.03"


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

eric2013 发表于 2019-4-20 01:41:29

mksu 发表于 2019-4-19 23:21
这个方法好像不支持 gcc 的编译!
keil 和iar 貌似是支持的!

GCC也没问题


页: [1]
查看完整版本: c 语言用宏如何实现两个 字符串拼接