Re: [問題] 我對C語言的認知是不是有問題?

看板C_and_CPP作者 (藍影)時間12年前 (2012/03/22 23:42), 編輯推噓3(309)
留言12則, 6人參與, 最新討論串2/5 (看更多)
※ 引述《CClai5566 (我也來56)》之銘言: : 問題(Question): : 我是個正在邊念書邊學C語言的學生 : (理工科系 要計算一些很大的東西) 這裡冒昧一問:理工什麼科系? 這和你的研究選擇什麼程式語言有很大關係。 < 刪光光 > : 是不是其實C語言大概就是指有for if while fopen等等這些東西可以玩而已? 有哪個程式語言沒有 for if while fopen ? 連簡單的 script language (vbs, power shell, batch) 都有 另外真的很少人單純只學 C 語言,windows 系統下可以去摸摸 Win32 API, 它出書的話大概會比牛津+劍橋字典還厚。 < 刪光光 > : 而要變的話要往函式庫去研究去走?! : 就是C語言真正強大是在其他函式庫 其實你說的也沒錯,但很多人用 C 語言,只是拿來學一些 domain 知識而已, 如影像處理,如果是上很理論的課程,應是不會用任何 library,直接用 C 語言硬刻; 如數值分析,是有人用 matlab 來上課,不過用 C 的人又更多。 仔細想一個問題,明明有 OpenCV,為什麼這些很理論課程不直接拿 OpenCV 來做; 明明有 matlab ,為什麼還要用 C 學數值分析, 還要人工砍一學期以後連自己都不會用的程式碼? 說實在話,我覺得有些 library 調用需要蠻深厚的 domain know how, 有 domain know how 之後你有能力開發一堆 library, 但這些事情已經有人做過了,你只需要基於別人開發好的基石, 去做其他更值得研究的事,不是嗎? < 刪光光 > : 程式語言學齡大概1年半左右 : 沒受過正規程式語言教育 只靠翻書跟自己找資料而已 謝謝 < 刪光光 > ------ 避開筆戰的可能。 理工有很多類組,只要是在寫演算法的八九不離十是在用 C; 工工寫程式也是八九不離十是在用 C;甚至你會了其他八百種程式語言, 唯獨不會 C/C++ , 但教授卻要求一定要用 C ,為什麼? 早期 paper 研究裡面比較多人在實作的高階程式語言有兩種: C, Fortran, 而近期尤其是 C 更多,工工較新的教授有轉戰 C# 趨勢, 但只要是扯到演算法的幾乎會探討兩個主題: 得到的解好不好、解出來的時間夠不夠快,這些都是比較出來的。 和誰比較?當然是和之前已經用 C 語言寫過、發表過的那些文章, 我認為這是學術界不少人還在用 C 的原因「之一」。 扣除掉學術問題,如果你只是要快速解決你的問題, 其實你有許多更好的選擇,一堆 script language 都很優秀, 如 vbs, autoit ( 國內可能較少人在談 autoit , 但它真的是很優秀的 script ) 等, 甚至 C 語言刻了五、六十行,其他的 script language 不到十行就完成。 我舉個小例,你知道 C 語言存下桌面 成 bmp 圖檔需要幾行嗎? 幾行可能還不是重點,你知道完成這個,背後需要多少 know how 嗎? 沒關係,我們來看 windows 底下是怎麼完成的 http://ppt.cc/Xpmk 這還不包含 png, jpg 等格式。我們再來看 autoit script language 是怎麼完成的 #include <ScreenCapture.au3> AutoItSetOption ( "TrayIconHide", 1) _ScreenCapture_Capture(@DesktopDir & "x.png") ; 存png _ScreenCapture_Capture(@DesktopDir & "x.bmp") ; 存bmp _ScreenCapture_Capture(@DesktopDir & "x.jpg") ; 存jpg 差很多對吧? 選用什麼程式語言這真的不一定, 工作領域、開發環境、問題規模、官方支援、 團隊慣用、歷史包袱、語言特性、現有函式庫、 擴充性、維護性、速度 ... etc 等, 但可以確定的是,學會一種具 OO 特性 + 有指標 的程式語言 , 之後跳其他高階程式語言真的不是難處。 真正的問題往往不是寫程式、不會用 library,而是 domain know how 不知道 , 我認為在學校較有價值學習的反而是這些才是。 人人都會寫程式,但並不是人人都可以當工程師, 差別在哪?我覺得就是 domain know how,它是專業的象徵… -- 我知道 ~ 但別說出來 , 說出來讓人感到特別難過... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.76.161

03/23 00:58, , 1F
新手推
03/23 00:58, 1F

03/23 05:51, , 2F
各位可能太高估他了。依照他所述,他了不起就是把語言當
03/23 05:51, 2F

03/23 05:56, , 3F
計算機用而已,這種user的演算法概念不是沒有就是很少…
03/23 05:56, 3F

03/23 05:57, , 4F
喔,用到MPI,那應該還有啦…
03/23 05:57, 4F

03/23 13:54, , 5F
只是純粹計算大量數據 別考慮 C/C++ 吧 光計算就等死你
03/23 13:54, 5F

03/23 13:56, , 6F
Fortran 是科學計算之王這個地位還是不可撼動的
03/23 13:56, 6F

03/23 13:57, , 7F
之前有理學院的跑來找我 要我把Fortran程式改成C/C++跑
03/23 13:57, 7F

03/23 13:58, , 8F
寫好後給他 計算慢到想抓狂
03/23 13:58, 8F

03/23 22:33, , 9F
其他程式的api真的是包山包海,c真的就少的可憐
03/23 22:33, 9F

03/24 12:08, , 10F
樓上你搞錯了吧 ... C 的 library 從來沒有少過啊 囧
03/24 12:08, 10F

03/24 16:46, , 11F
我是說直接就連在c裡面的,像java就很多
03/24 16:46, 11F

03/24 21:41, , 12F
應該是java特別多library吧XD
03/24 21:41, 12F
文章代碼(AID): #1FQqXUs2 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1FQqXUs2 (C_and_CPP)