免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 42193 | 回复: 8

[C++] 请教编程时字符定义方面的问题 [复制链接]

论坛徽章:
0
发表于 2016-08-10 09:53 |显示全部楼层
各位在写代码时,如果遇到同时用上windows api和STL时,字符都用宽字符还是ANSI?Windows提倡用宽字符,可是在STL看来,宽字符似乎不是很有优势,并且很难掌控,举个例,就算能完全掌控wcout的人都不多吧。如果涉及到跨平台,宽字符似乎更难处理。在Linux下,有人说宽字符的优势也不明显,这是真的吗?

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
发表于 2016-08-10 11:51 |显示全部楼层
32位处理器比8位处理器复杂,但32位处理器效率更高。更高的数据宽度是有优势的,加上统一编码(消除平台差异),这是历史前进的方向。

库函数不好掌握可以自己另写一套接口,这并不复杂,算法是一样的。

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
发表于 2016-08-10 12:02 |显示全部楼层
尤其对使用中文的国家来说,更需要开发相应的针对大字符集的函数库,词法/语法解析都能用得上

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-06-29 06:20:00每日论坛发贴之星
日期:2016-08-14 06:20:00操作系统版块每日发帖之星
日期:2016-08-14 06:20:00每日论坛发贴之星
日期:2016-08-13 06:20:00数据库技术版块每日发帖之星
日期:2016-08-13 06:20:00程序设计版块每日发帖之星
日期:2016-08-13 06:20:00IT运维版块每日发帖之星
日期:2016-08-13 06:20:00每日论坛发贴之星
日期:2016-08-12 06:20:00数据库技术版块每日发帖之星
日期:2016-08-12 06:20:00程序设计版块每日发帖之星
日期:2016-08-12 06:20:00操作系统版块每日发帖之星
日期:2016-08-12 06:20:00综合交流区版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2016-08-10 13:46 |显示全部楼层
帮顶~~~

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-06-29 06:20:00每日论坛发贴之星
日期:2016-08-14 06:20:00操作系统版块每日发帖之星
日期:2016-08-14 06:20:00每日论坛发贴之星
日期:2016-08-13 06:20:00数据库技术版块每日发帖之星
日期:2016-08-13 06:20:00程序设计版块每日发帖之星
日期:2016-08-13 06:20:00IT运维版块每日发帖之星
日期:2016-08-13 06:20:00每日论坛发贴之星
日期:2016-08-12 06:20:00数据库技术版块每日发帖之星
日期:2016-08-12 06:20:00程序设计版块每日发帖之星
日期:2016-08-12 06:20:00操作系统版块每日发帖之星
日期:2016-08-12 06:20:00综合交流区版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2016-08-10 13:47 |显示全部楼层
一直没感觉到宽字符的存在呀,linux下都是utf8呀。

论坛徽章:
0
发表于 2016-08-10 13:54 |显示全部楼层
回复 5# karma303


    没那么简单,其实实际情况复杂多了。如果代码里有中文,由于文件字符编码不同,即使把一个很小的代码放到windows下面去编译,可能编译都通不过

论坛徽章:
0
发表于 2016-08-10 13:56 |显示全部楼层
回复 2# 爻易


    正因为是大趋势,所以才考虑宽字符的问题。在STL里,宽字符似乎处理起来比较麻烦,特别是在处理流时,感觉特别麻烦。

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
发表于 2016-08-11 07:45 |显示全部楼层
回复 7# foxwb

所以可以考虑重新写一套接口库

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
发表于 2016-08-11 08:14 |显示全部楼层
另外,windos上标准库的宽字符是16位,lunix/9cc上的标准库宽字符则是32位,你想跨平台编译的话也得注意一下。

所以最好还是不用标准库的宽字符,自己另写跨平台的字符类型及相应接口反而更容易实现
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP