看板 C_and_CPP 關於我們 聯絡資訊
大家好,第一次在這發文,請多多指教~ 我之前在上過jserv大大的線上課程時, 聽到宅色夫極力推薦寫C的人都該先去讀讀規格書,搞懂C的真正內容 於是我就印了一本C11的comittee draft(n1570),決定把Library章節之前的讀完。 但是讀到40頁的時候,我發現雖然我在C上面自認有一定的基礎,也做過一些開發。但是規 格書中很多地方很難光從文字去理解它的內容,想要看一些實際的例子,但卻找不到資源( 也怕找到錯的),也怕自己用錯的方式測試。 再加上像jserv老師所講的,C的設計哲學是為了Unix而寫的。但是我對於concurrency以及 Linux kernel方面也不太熟,在規格書上讀到這方面的內容都直接讀過去。 想要請教一下各位大大,我想要真正讀懂規格書,該如何下手,或有什麼輔助的資源呢? 感謝各位以及jserv大大的貢獻!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.26.1.16 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1520769402.A.D6D.html
Hazukashiine: 把字典拿來啃的概念? 03/11 20:29
Hazukashiine: 我都隨便看看有個印象 03/11 20:30
Hazukashiine: 要用的時候再仔細看 03/11 20:30
TWkobe: 他的意思是叫你常常查 不是直接拿來看 03/11 20:42
可是jserv在寒假直播上課的時候,我記得他是建議把Lib章節以前一百多頁看完ㄝ
Lipraxde: 你要步入zzss2003的後塵嗎? 03/11 21:07
我會把重點放在如何應用上面,所以在找能夠給例子的輔助資源。 ※ 編輯: CsCdanNix (110.26.1.16), 03/11/2018 21:10:41 ※ 編輯: CsCdanNix (110.26.1.16), 03/11/2018 21:21:30
loveflames: programmer跟language lawyer是不同的 03/12 00:23
MOONRAKER: 噗 zz同學果然不負眾望成為底部 03/12 03:23
MOONRAKER: jserv很厲害 但是這個建議照著硬幹實在太不健康 03/12 03:26
MOONRAKER: 這種東東即使寫很久也不一定能全懂 比較像C語言體檢 03/12 03:32
loveflames: zz的例子是? 03/12 07:21
Archier: zzss怎麼呢? 03/12 12:34
Caesar08: 對程式有一定興趣與了解後,再考慮是否要讀規格書 03/12 12:35
Caesar08: programmer跟language lawyer是不同的 03/12 12:35
jaid: 我是覺得規格書本來就不是給一般人讀的 真的要唸還是要夠厚 03/12 13:39
jaid: 的底子 03/12 13:39
notBeing: 試著利用規格書來回答你對C語言的疑問:為什麼可以,為 03/12 16:15
notBeing: 什麼不行 03/12 16:15
我想zzss大也有自己學習的方式吧~ 看完各位大大的建議我想我應該就先念過去有個印象不要鑽牛角尖,著重在實際有應用的方面,等到之後火侯到了真正碰到問題再來仔細看囉! 感謝各位的回應~~ ※ 編輯: CsCdanNix (110.26.1.16), 03/12/2018 18:47:59 ※ 編輯: CsCdanNix (110.26.1.16), 03/12/2018 18:48:32
littleshan: C 是為了開發 Unix 系統而設計的 03/12 21:12
littleshan: 那個年代 (197x) 還沒有 Linux 03/12 21:12
喔抱歉寫混了,已修正!感謝~
remember: jserv十多年前的文章,小弟不否認從他的心得發表可以學 03/12 23:59
remember: 到不少東西 03/12 23:59
remember: 但是他當時的文章常常有種自傲參雜自卑的感覺,看起來心 03/13 00:01
remember: 情頗複雜,常會覺得幹嘛這樣 03/13 00:01
remember: 規格書可以解釋為什麼 static variable 為什麼初始值會 03/13 00:04
remember: 是 0 XD 03/13 00:04
哦哦酷ㄝ~看到了jserv成長時期的文章
tinlans: 規格書主要是給專門教 C 語言的老師、發明程式語言的學者 03/13 16:43
tinlans: 還有我們這種做 compiler 的人讀的。一般人大都是有疑義 03/13 16:44
tinlans: 才會去查,但通常也是查得一頭霧水。因為它是 bottom-up 03/13 16:44
tinlans: 從細節開始往上講,但是查閱的時候通常是 top-down,然後 03/13 16:45
tinlans: 因為 top-down 的時候不知道各種細節名詞,就會很痛苦。 03/13 16:46
tinlans: 因此才會出現「應該要把規格書讀過一遍」這種建議吧... 03/13 16:46
tinlans: 至於 jserv 這人給的建議,只能說正規訓練方式不是這樣, 03/13 16:48
tinlans: 他本身成長的路線比較崎嶇,不一定每個人都要走這陡坡 03/13 16:49
tinlans: 要啃那本書,基本上也是要修完資工大學部主科,包括作業 03/13 16:51
tinlans: 系統、系統程式、程式語言(非程式設計)、編譯器等等的, 03/13 16:52
tinlans: 才會比較有感。jserv 本人有走另外的路線先摸過差不多的 03/13 16:52
tinlans: 東西,所以他碰到的時間點才剛好可以直接讀吧。 03/13 16:52
tinlans: static variable 初值是 0 應該讀 APUE,古早時期程設常 03/13 16:55
tinlans: 用的課本之一,那邊就會講 C 程式的 runtime environment 03/13 16:56
tinlans: 板上一直有人大推的那本程式設計師的自我修養也是該在讀 03/13 16:58
tinlans: 規格書之前讀的。我不確定是 jserv 有少講前提條件還是你 03/13 16:58
tinlans: 少看,就像某樓講的,這樣讀其實不健康。 03/13 16:58
wvwvwvwvwv: 推一下這篇 https://hackmd.io/s/HyBPr9WGl 03/13 17:11
s0914714: jserv是說有些人喜歡在那try老半天,得到結果很開心 03/13 17:23
s0914714: 可是有可能是未定義行為或者是跟編譯器有關 03/13 17:25
s0914714: 這時候直接翻規格書是最快途徑 03/13 17:25
s0914714: 如果只懂皮毛 翻規格書其實沒啥用拉 03/13 17:26
tinlans: 這說法跟原 po 第三行寫的出入有點大啊 XD 03/13 18:46
首先,再次感謝各位大大的回應,尤其是tin大抽空回了很多~ 我又重回去審視了一下jserv大大的意思,先將連結影片放在下面: 你所不知道的 C 語言:開發工具和規格標準篇 (2017-05-16) https://goo.gl/PK4AmK 就課堂中他在58分、1時59分跟2時11分所講的,我的理解是因為現在資訊太發達,網路書本太多錯誤資訊, 所以他希望大家在查閱時要學會「溯源」,盡量找尋第一手資料去比對,以免錯誤理解, 所以才會有期望大家都去讀讀規格書的這句話。 當然也因為jserv比較多在處理效能跟driver方面,有很深的基礎來讀規格書,而我沒有, 所以學習方式也不一樣。jserv自己也說參照其他書籍比較好讀。 我自己也有在處理硬體方面,我想我應該還是會把規格書看過一遍(第七章前面短短一百多頁), 配合其他書籍(descent大也有推薦一些)閱讀,不會把它當主要的學習用具而太過鑽研。 以後在讀其他書的時候也比較會有印像可以拿來對照,也可避免書上有錯誤。隨著的功力深了也能理解更多了。 大概醬,如果有錯的理解請各位指教~ ※ 編輯: CsCdanNix (140.115.202.113), 03/13/2018 21:10:46