请教编程时字符定义方面的问题
各位在写代码时,如果遇到同时用上windows api和STL时,字符都用宽字符还是ANSI?Windows提倡用宽字符,可是在STL看来,宽字符似乎不是很有优势,并且很难掌控,举个例,就算能完全掌控wcout的人都不多吧。如果涉及到跨平台,宽字符似乎更难处理。在Linux下,有人说宽字符的优势也不明显,这是真的吗? 32位处理器比8位处理器复杂,但32位处理器效率更高。更高的数据宽度是有优势的,加上统一编码(消除平台差异),这是历史前进的方向。:em17:库函数不好掌握可以自己另写一套接口,这并不复杂,算法是一样的。 尤其对使用中文的国家来说,更需要开发相应的针对大字符集的函数库,词法/语法解析都能用得上:lol 帮顶~~~ 一直没感觉到宽字符的存在呀,linux下都是utf8呀。 回复 5# karma303
没那么简单,其实实际情况复杂多了。如果代码里有中文,由于文件字符编码不同,即使把一个很小的代码放到windows下面去编译,可能编译都通不过 回复 2# 爻易
正因为是大趋势,所以才考虑宽字符的问题。在STL里,宽字符似乎处理起来比较麻烦,特别是在处理流时,感觉特别麻烦。 回复 7# foxwb
所以可以考虑重新写一套接口库:em02: 另外,windos上标准库的宽字符是16位,lunix/9cc上的标准库宽字符则是32位,你想跨平台编译的话也得注意一下。
所以最好还是不用标准库的宽字符,自己另写跨平台的字符类型及相应接口反而更容易实现:hug:
页:
[1]