看板 Soft_Job 關於我們 聯絡資訊
c++ 太可憐了, 想為 c++ 說點話, c 之所以難學, 其中有個指標的難題, c++ 可以在某 種程度上減低這樣的困難。 int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); 呼叫 getaddrinfo 之後, 還得記得要 freeaddrinfo(result), 而 res 本身又是個複雜 的 linked list 資料結構, 有興趣可以參考 man page 的用法, 雖然難不倒你, 但用起 來實在太複雜。 要是用 c++, 就可以使用 std::vector 來對付這樣的資料結構, 無需操作指標, 又保有 高效率。 vector<XXX> res getaddrinfo(..., res); for (int i=0 ; i < res.size() ; ++i) { } 不需要記得去 free 記憶體, 也不用使用那令人害怕的兩顆星操作。 而 c++ 也提供了 std::string, 光是這個和 std::vector, std::list, 就足夠降低寫 c 程式的門檻, 不用辛苦的注意 \0 到底有沒加上, 字串 size 是不是少了一, 更不用擔 心老是搞不清楚 char str[] = "abc"; char *str="abc"; static char *str="abc"; 這些奇怪的差異, 我還沒提到如果 function 要傳入, 或是傳回字串時的麻煩事。 這些都減少了很多初學者操作指標的困擾, Joel 說過, 一個語言好用是因為你不用自己 管理記憶體, c++ standard library 提供了不少的幫助, 這些都比學習 c 來得容易。 我第一個自學的語言是 x86 組合語言, 遇到重重困難, 一事無成, 太高估我自己了, 若 一開始改學 c/c++, 應該略有小成。 從我改學 c++ 之後, 大多是她陪伴著我, c 也是靠著學 c++ 時, 順便接觸到的, 果然要 操作指標難度會整個提升不少。 那你說 template, oo, lambda, c++11, c++14 那些東西呢? 管他的! 你需要多學習那些才能寫出程式嗎? 雖然工作都是以 c/c++ 為主, 不過薪水沒有特別高。 ※ 引述《NewSpec (新規格)》之銘言: : 這個問題我老早就想請教各位版大了 : 並不是為了嗆前面那個問題= ="" : 雖然說有人覺得學C/C++沒必要 : 但事實上就是某幾個browser公司依舊缺C/C++工程師 : 做big data的一樣缺C/C++ infra工程師 : 前陣子有人跟我說有個能讓我現在package +50%的機會 : 一樣是要Linux network programming : 但我他媽的就是一個不值錢的java/python/scala後端 : 事到如今我已經再也受不了了 : 能力也不是比別人弱,但一開始路就走錯了又能怎樣 : 所以想請問各位學習C/C++並能使之成為應職技能要怎樣能比較快達到? : 我已經在物色github project想contribute了, : 但不知道別人吃不吃這套... QQ -- 要有一流的運氣, 才能邂逅一流的美女。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.206.105 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1423544753.A.B24.html
leolarrel: 歡迎你來認識/學習python or ruby,比c++好用太多 02/10 14:01
realmeat: 指標操作我一直覺得很單純... 有啥複雜的? 02/10 14:02
imutek: 我習慣 allocate memory 之後,先找好位置寫上 free 02/10 15:28
noonOut: 你講的是 API 設計的問題吧 epoll_wait 也是回一串清單 02/10 16:03
noonOut: 但就不用兩個星星 02/10 16:03
ACMANIAC: C++ 愛好者給個推。我覺得奇怪的是,我也問到不少人愛寫 02/10 16:04
ACMANIAC: C++ 的都跟我一樣上手以後就完全不想碰 C,怎麼在業界 02/10 16:05
ACMANIAC: 看起來還一堆人在用 C... 實在難以理解啊。 02/10 16:05
noonOut: 是說 c 沒有辦法用 raii 幫你處理資源那是事實 02/10 16:05
noonOut: 所以講到後來方便歸方便,背景知識要很多...什麼東西可以 02/10 16:06
noonOut: 怎樣被釋放要很清楚,不然會是災難 02/10 16:06
noonOut: 雖然我也很愛 C++,但我絕對不會用簡單來形容 02/10 16:07
imutek: 像是Linux平台的版子儲存空間夠大,我用C++寫的很愉快 02/10 16:58
imutek: 但有些MCU的toolkit只給了C compiler,也只能寫C囉 02/10 16:59
rodion: 業界還在碰C 很多是有portability考量 02/10 17:01
wuliou: 寫過C++回不去C 寫過Java回不去C++ 寫過Python其他都不想 02/10 21:54
wuliou: 再碰了XD 不過如果碰MCU或是SoC C語言還是躲不了的 02/10 21:55