完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
看liuyang哥的
|
|
|
|
嗨,我這裡實現strcat的功能
template const a[]="12345"; const b[]="6789"; 供您參考 |
|
|
|
|
|
|
|
云汉达人
这个好简的,用##字符 #define A1(name, type) type name_##type##_type 或 #define A2(name, type) type name##_##type##_type A1(a1, int); /* 等价于: int name_int_type; */ A2(a1, int); /* 等价于: int a1_int_type; */ 解释: 1) 在第一个宏定义中,”name”和第一个”_”之间,以及第2个”_”和第二个”type”之间没有被分隔,所以预处理器会把name_##type##_type解释成3段: “name_”、“type”、以及“_type”,这中间只有“type”是在宏前面出现过的,所以它可以被宏替换。 2) 而在第二个宏定义中,“name”和第一个“_”之间也被分隔了,所以预处理器会把name##_##type##_type解释成4:“name”、“_”、“type”以及“_type”,这其间,就有两个可以被宏替换了。 3) A1和A2的定义也可以如下: #define A1(name, type) type name_ ##type ##_type <##前面随意加上一些空格> #define A2(name, type) type name ##_ ##type ##_type 结果是## 会把前面的空格去掉完成强连接,得到和上面结果相同的宏定义 |
|
|
|
c++模板是不支持用字符串做模板参数的,因为字符串本质上是一段内存地址,在编译期不能确定它的地址(因为字符串的地址经过链接和重定向,只有在运行时才能确定)。
你可以通过包装来实现。比如 struct str_value { static const char* get() { return "str"; } }; 把str_value作为参数传递过去,在运行时调用get方法。 |
|
|
|
只有小组成员才能发言,加入小组>>
661 浏览 0 评论
1083 浏览 1 评论
2454 浏览 5 评论
2779 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2615 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
638浏览 9评论
634浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
765浏览 6评论
610浏览 5评论
651浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 19:31 , Processed in 0.883536 second(s), Total 57, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号