我已经检查了SO并且没有找到任何帮助选择正确字符串的内容.有些网站会说明从一个字符串到另一个字符串的转换,但这不是我们想要的.
希望根据专业,性能,可移植性(Windows,Mac,Linux / Unix等),易用性/功能,多语言支持(Unicode / MBCS),缺点(如果有的话)以及任何其他特殊功能进行比较案例.
我列出了我到目前为止遇到的字符串.我相信会有更多,所以我们可以稍后编辑它以适应其他选项.请注意,我主要在windows上工作,所以列表反映了相同:
> char *
> std :: string
> STL的basic_string
> ATL的CString
> MFC的CString
> BSTR
> _bstr_t
> CComBstr
为什么我说效率低?您最终会为各种字符串参数(即使是多个参数的排列)进行不必要的模板实例化.您发现自己正在调用想要将结果加载到字符串&中的函数,然后必须在其上调用.c_str()并构造其他类型,执行冗余内存分配.甚至const std :: string&如果使用ASCIIZ char *调用(例如,对某些其他字符串类型的缓冲区),则需要一个临时字符串.当你想编写一个函数来处理特定调用者想要使用的字符串类型时,你会被推向模板,因此内联代码,更长的编译时间和重新编译依赖性(有一些方法可以缓解这种情况,但它们会变得复杂并且为了方便或自动化,它们倾向于需要改变各种字符串类型 – 例如,转换 *** 作符或成员函数返回一些公共接口/代理对象).
项目可能需要使用非标准字符串类型与他们想要使用的库进行交互,但是如果可能的话,您希望将其最小化并限制普遍性.
总结以上是内存溢出为你收集整理的C字符串,什么时候用?全部内容,希望文章能够帮你解决C字符串,什么时候用?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)