回覆列表
  • 1 # 懶蟲o重複了o

    1.做dll時用string並不是所以語言都相容。

    2.函式返回char*時。如果不小心return string.c_str()記憶體就會自動釋放。

    3.string雖然方便。但是很多情況會拷貝記憶體。效率不如char*

    4.vs各個版本有相容性問題。就連debug和release都不通用

    如果不考慮相容性string還是要比char*好用

  • 2 # 黃河邊

    看了一本兒書,說阿里雲端計算底層都是用C++來寫的,但是一般基礎庫都是自己寫的,甚至STL庫都不允許使用,因為這些第三方開源庫裡面很多記憶體分配也是沒法控制的,效能上不能做到極致。

  • 3 # Kindcity

    C++就是一坨屎,有缺陷的語言。什麼年代了,連最基礎的字串操作都有各種問題。真要較真,大部分程式碼都有隱藏bug。這語言真的需要淘汰。

  • 4 # last01

    脫離具體的問題和環境討論技術實現方式都是耍流氓。 stl的優點是方便,使用簡單適合初學者。但它也有明顯的缺點,如模版程式碼膨脹,記憶體不可控等,這個在低端嵌入式系統上會帶來很大問題。另外作為對外介面不適用stl,第一因為模板都是標頭檔案,要例項化到呼叫方程式碼裡,如果編譯器或編譯引數不同會造成兩邊不一致,帶來難以預料的問題。 事實說明你領導比你考慮的周全多了。

  • 5 # 趙太爺

    這領導顯然是沒有搞清楚string的實現機制,不要跟著這樣的領導,學不到東西。肯定是某年你的領導用string出了啥問題,改成char *就好了,然後也不知道到底是啥原因,就定下了這種逃避問題的規定了。遇到問題正確的做法是解決問題,而不是逃避問題。

  • 6 # 特修斯的宇宙

    說明你的領導是個老鳥[贊]

    char是C. C++中最為安全和靈活的型別,對一個有責任心的程式設計師來說堅持用char而不是string會給你帶來無比美好的體驗。string一時爽,事後除錯補救才要命!特別是你想休長假的時候一般就是它要出問題的時候。

  • 7 # prompthu

    c++11以後全部用std:string已經沒有任何問題了,如果新發布的dll要相容c++以前版本,最好還是聽取技術負責人的建議。早期不支援move語義的編譯器,std:string的效能較差,這可能是某些早期專案不願意採用std:string的原因之一

  • 8 # topchina123

    c++ 程式設計裡面string都不用,還算寫c++

    嗎?

    c++11上了沒?

    至少得上c++11吧,不然這公司也不用待下去了。

  • 9 # R7Forever

    看什麼領域了,如果是底層,嵌入式,通訊模組,受限系統,基本上都是使用陣列和指標,這樣記憶體和物件的管理,一目瞭然,出了問題也比較好查詢原因,否則,stl的記憶體管理,沒有深厚的功底是難以理解的,層層包裹,讓你很難去trace。

  • 10 # ForeverYoung

    我對char有十年左右的感情,char在c程式設計使用極為廣泛。char幾乎是我們程式設計中最小的單位(不要用位操作抬槓),一個位元組,不同長度的char能裝下全世界。一句話,資料盡在掌控中。char是用來盛資料的,並不侷限於字串。缺點嘛,就是定長,在使用前要預估,使用中不能越界。string說白了就是傻瓜操作,你隨便的將未知長度的字串放進去。其實我並不相信用string會出現靈異事件,這純屬扯淡,string已經是基本資料型別,一門語言你要說string有問題,它可能發現到今天麼?

    我覺得要是純字串處理,用string。資料處理,用char。現在的開發,我們不能由於懼怕用封裝的東西,你要不用勢必會導致開發效率低下。就算你有人力財力,所有的庫你都自己寫,你是能掌控一切了,但是你能保證你的程式碼沒bug麼?用char記憶體越界更是充滿更多重靈異事件。

  • 中秋節和大豐收的關聯?
  • 因故“突然消失”退出娛樂圈的女明星有哪些?究竟是什麼緣故?