C++编程积累到一定阶段 , 基本上都会总结出自己的一套类库的 。拿我自己来说 , 我是有自己的字符串处理 , 多线程编程、可变数组、线程池等等类库 。随着C++标准的完善 , 我也会同时审查并更新自己的类库 。更新时使用适配器模式的设计思想 , 尽量保持对外的接口不变 , 日积月累 , 形成了自己的编码风格 。更为重要的是 , 出了问题之后 , 我会在短时间内解决 , 因为那些代码我都滚瓜烂熟了 。
再回到题主提及的这种情况 , 习惯使用char的程序员比使用string的程序员 , 对内存管理的理解要深刻 。比如 , 类或结构体的成员变量尽可能在声明时是固定数据类型 。不然的话 , 由于创建的对象的大小所占的内存是可变的 , 很容易产生非预期的内存错误 。在32位编译器中 , char类型的成员变量 , 无论是char指针占4个字节 , 还是固定大小的字符串数组 , 类的变量占用的内存是固定的 。string类型的变量 , 因为内存是变化的 , 隐患也由此埋下 , 一旦出现问题也非常难以排查 。不是有句话说 , 没有经历过的事情都无法做到身同感受 。
我给题主一个建议 , 这两种用法你应该都会 , 并能对比使用 。也就是 , 知道在什么场景使用string来处理字符串来提高效率 , 也知道在什么场景下必须使用char方式 。
最后 , 祝题主和屏幕前的你 , C++水平更上一层楼 。
我是代码Go说科技 , 码农的视角看科技 , 带给大家不一样的感受 。欢迎大家阅读评论转发加关注 。
在嵌入式上 , char一定好用 , string就不一定了 。
C在开发效率上的确不去C++ , 但是至今没被淘汰 , 自然有其独特的优势 。
你可以问问这个前辈 , 很有可能他会告诉你 , 这样写是为了可移植性 。他可能并非不会用string
计算机编程语言中 , string根本就不是一种数据类型 。无数大佬创建的各种语言 , 从始致终都没有定义过string , 不是没有原因的 。
用char数组存储字符串 , 最大的好处是可控性和稳定性 , 对于做了什么自己心里清楚 。
而string , 只是方便写代码 。
所以 , 对于团队来说 , 使用char的 , 一定会有自己团队喜欢的 , 经过深度测试的 , 配套的操作函数 。同样方便写代码 。
string只是对新人来说省事而已 。
string 是C++ std里的模板类 。不是MFC 的CString类 。C语言根本没有类的概念 。
使用string 最大问题是需要运行时库 , 所以无法运行在无vc++201x的电脑上 。CString 与char *都不会出现这种情况 。
CString 比string更好用 。所以如果你编写MFC程序最好用CString类 。
如果使用结构体 , 必须使用char[],不能用类 。特别是网络封包程序 。
考虑到程序能在所有电脑运行 , 不需要额外安装运行库的情况下 , 只能强制使用char*
要性能就用char,
要开发省事用string ,
字符串编码处理有细节 。
另外领导习惯或公司氛围很重要 , 只要软件功能正常 , 听领导没错 。
你领导坚持用的应该是char* , 估计是之前以传值方式用string引发大量的字符串拷贝影响效率了
- 火车司机,一个月工作240个小时,从你下班到下一次上班,在家待18个小时,你愿意来吗?
- 在长沙工作,今年刚满30岁,月薪25000算什么水平?
- 事实上是被公司裁员的,但是离职证明却写成了个人原因离职,现在在劳动仲裁,应该怎么补救?
- 在职场被排挤了怎么办?
- 在德云社工作的相声演员,工资待遇如何?
- 有了新家后,我发现“买家居物件”会上瘾,好看的实在太多了!
- 五种食谱改善皮肤粗糙
- 你对正在吃的减肥药有多少了解?
- 音乐翻唱的意义到底在哪里 翻唱改编音乐作品是一种突破吗
- 音乐表演专业学什么 毕业后能干什么
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
