当前位置:项目开发->项目经验 ->拼接两个宏字符串组成一个新字符串宏

原创版权标志拼接两个宏字符串组成一个新字符串宏

作者:codexia  发表时间:2018/10/11 17:32:30  阅读:
[摘要] 我们开发的程序,测试时放在测试服务器上运行,最终发布则放在正式服务器运行。而对于请求的路径,则会根据地址而不同。所以我们这里就需要定义两个地址。
使用支付宝扫码领红包,余额宝付款才可以使用红包哦!不要忘记哈。每天扫一次,天天赚红包!!可以将二维码保存到手机,每天直接扫码领红包啦!!
    在定义一个URL地址时,我们可能出现这样的两组:
http://www.cjjjs.com/user/1.txt
http://test.www.cjjjs.com/user/1.txt
    出现这个场景的需求是,我们开发的程序,测试时放在测试服务器上运行,最终发布则放在正式服务器运行。而对于请求的路径,则会根据地址而不同。所以我们这里就需要定义两个地址。
    如果用变量,这是非常简单的事情,也就是两个字符串而已。不管怎么处理,都再简单不过了。如果我们想简化这两个定义,我们可以将前面的部分提取出来,后面共用一个变量,这样看起来简洁。如下:
string url1 = "http://www.cjjjs.com"
string url2 = "http://test.www.cjjjs.com"
string url3 = "/user/1.txt"
string url4 = url1 + url3
string url5 = url2 + url3
    然后我们自行组合就可以了。不过我们需要将这两个用法使用宏来代替实现。试想一下,如何实现?
    直接想到的就是:
#define URL1 "http://www.cjjjs.com/user/1.txt"
#define URL2 "http://test.www.cjjjs.com/user/1.txt"
    如果将前面部分提取出来,这样:
#define URL1 "http://www.cjjjs.com"
#define URL2 "http://test.www.cjjjs.com"
#define URL3 "/user/1.txt"
    组合:?
#define URL4 URL1 + URL3
#define URL5 URL2 + URL3
    这是不对的!不管是在Windows还是Linux环境,编译都是通不过的。因为两个常量是不能直接相加的。这是我们自己想当然了。
    所以我们需要的宏字符串拼接就是我们现在需要的。网上感觉没有直接说这个事的,因为用宏用的少,所以竟然不知道。查了半天资料,摸索出来了。
    想要实现宏字符的拼接,其实只要把上面的加号去掉就行了。在VS2017的Windows环境测试通过,CentOS6.8 GCC测试也通过了。
    ok!!搞定。
微信扫码关注公众号CPP技术网,微信号cpp_coder,关注我们的公众号,阅读更多精彩内容!每天还可以领取大红包哦!!!每天还可以领取大红包哦!!!每天还可以领取大红包哦!!!
文章来源:C++技术网原创文章版权为网站和作者共同所有,会员文章禁止转载。非会员文章转载做好本文超链接即表示授权转载。通过文章下面的分享按钮可以自由分享所有文章。

返回顶部

在线提问
问题标题:
问题描述:(简陋的描述会导致问题被最后回答、没有针对性回答甚至无法解答。请确保问题描述的足够清楚。)