[問題] C規格書的閱讀方式

看板C_and_CPP作者 (丹尼克斯ㄟ巨大火球)時間7年前 (2018/03/11 19:56), 7年前編輯推噓5(5044)
留言49則, 14人參與, 7年前最新討論串1/2 (看更多)
大家好,第一次在這發文,請多多指教~ 我之前在上過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

03/11 20:29, 7年前 , 1F
把字典拿來啃的概念?
03/11 20:29, 1F

03/11 20:30, 7年前 , 2F
我都隨便看看有個印象
03/11 20:30, 2F

03/11 20:30, 7年前 , 3F
要用的時候再仔細看
03/11 20:30, 3F

03/11 20:42, 7年前 , 4F
他的意思是叫你常常查 不是直接拿來看
03/11 20:42, 4F
可是jserv在寒假直播上課的時候,我記得他是建議把Lib章節以前一百多頁看完ㄝ

03/11 21:07, 7年前 , 5F
你要步入zzss2003的後塵嗎?
03/11 21:07, 5F
我會把重點放在如何應用上面,所以在找能夠給例子的輔助資源。 ※ 編輯: CsCdanNix (110.26.1.16), 03/11/2018 21:10:41 ※ 編輯: CsCdanNix (110.26.1.16), 03/11/2018 21:21:30

03/12 00:23, 7年前 , 6F
programmer跟language lawyer是不同的
03/12 00:23, 6F

03/12 03:23, 7年前 , 7F
噗 zz同學果然不負眾望成為底部
03/12 03:23, 7F

03/12 03:26, 7年前 , 8F
jserv很厲害 但是這個建議照著硬幹實在太不健康
03/12 03:26, 8F

03/12 03:32, 7年前 , 9F
這種東東即使寫很久也不一定能全懂 比較像C語言體檢
03/12 03:32, 9F

03/12 07:21, 7年前 , 10F
zz的例子是?
03/12 07:21, 10F

03/12 12:34, 7年前 , 11F
zzss怎麼呢?
03/12 12:34, 11F

03/12 12:35, 7年前 , 12F
對程式有一定興趣與了解後,再考慮是否要讀規格書
03/12 12:35, 12F

03/12 12:35, 7年前 , 13F
programmer跟language lawyer是不同的
03/12 12:35, 13F

03/12 13:39, 7年前 , 14F
我是覺得規格書本來就不是給一般人讀的 真的要唸還是要夠厚
03/12 13:39, 14F

03/12 13:39, 7年前 , 15F
的底子
03/12 13:39, 15F

03/12 16:15, 7年前 , 16F
試著利用規格書來回答你對C語言的疑問:為什麼可以,為
03/12 16:15, 16F

03/12 16:15, 7年前 , 17F
什麼不行
03/12 16:15, 17F
我想zzss大也有自己學習的方式吧~ 看完各位大大的建議我想我應該就先念過去有個印象不要鑽牛角尖,著重在實際有應用的方面,等到之後火侯到了真正碰到問題再來仔細看囉! 感謝各位的回應~~ ※ 編輯: CsCdanNix (110.26.1.16), 03/12/2018 18:47:59 ※ 編輯: CsCdanNix (110.26.1.16), 03/12/2018 18:48:32

03/12 21:12, 7年前 , 18F
C 是為了開發 Unix 系統而設計的
03/12 21:12, 18F

03/12 21:12, 7年前 , 19F
那個年代 (197x) 還沒有 Linux
03/12 21:12, 19F
喔抱歉寫混了,已修正!感謝~

03/12 23:58, 7年前 , 20F

03/12 23:59, 7年前 , 21F
jserv十多年前的文章,小弟不否認從他的心得發表可以學
03/12 23:59, 21F

03/12 23:59, 7年前 , 22F
到不少東西
03/12 23:59, 22F

03/13 00:01, 7年前 , 23F
但是他當時的文章常常有種自傲參雜自卑的感覺,看起來心
03/13 00:01, 23F

03/13 00:01, 7年前 , 24F
情頗複雜,常會覺得幹嘛這樣
03/13 00:01, 24F

03/13 00:04, 7年前 , 25F
規格書可以解釋為什麼 static variable 為什麼初始值會
03/13 00:04, 25F

03/13 00:04, 7年前 , 26F
是 0 XD
03/13 00:04, 26F
哦哦酷ㄝ~看到了jserv成長時期的文章

03/13 16:43, 7年前 , 27F
規格書主要是給專門教 C 語言的老師、發明程式語言的學者
03/13 16:43, 27F

03/13 16:44, 7年前 , 28F
還有我們這種做 compiler 的人讀的。一般人大都是有疑義
03/13 16:44, 28F

03/13 16:44, 7年前 , 29F
才會去查,但通常也是查得一頭霧水。因為它是 bottom-up
03/13 16:44, 29F

03/13 16:45, 7年前 , 30F
從細節開始往上講,但是查閱的時候通常是 top-down,然後
03/13 16:45, 30F

03/13 16:46, 7年前 , 31F
因為 top-down 的時候不知道各種細節名詞,就會很痛苦。
03/13 16:46, 31F

03/13 16:46, 7年前 , 32F
因此才會出現「應該要把規格書讀過一遍」這種建議吧...
03/13 16:46, 32F

03/13 16:48, 7年前 , 33F
至於 jserv 這人給的建議,只能說正規訓練方式不是這樣,
03/13 16:48, 33F

03/13 16:49, 7年前 , 34F
他本身成長的路線比較崎嶇,不一定每個人都要走這陡坡
03/13 16:49, 34F

03/13 16:51, 7年前 , 35F
要啃那本書,基本上也是要修完資工大學部主科,包括作業
03/13 16:51, 35F

03/13 16:52, 7年前 , 36F
系統、系統程式、程式語言(非程式設計)、編譯器等等的,
03/13 16:52, 36F

03/13 16:52, 7年前 , 37F
才會比較有感。jserv 本人有走另外的路線先摸過差不多的
03/13 16:52, 37F

03/13 16:52, 7年前 , 38F
東西,所以他碰到的時間點才剛好可以直接讀吧。
03/13 16:52, 38F

03/13 16:55, 7年前 , 39F
static variable 初值是 0 應該讀 APUE,古早時期程設常
03/13 16:55, 39F

03/13 16:56, 7年前 , 40F
用的課本之一,那邊就會講 C 程式的 runtime environment
03/13 16:56, 40F

03/13 16:58, 7年前 , 41F
板上一直有人大推的那本程式設計師的自我修養也是該在讀
03/13 16:58, 41F

03/13 16:58, 7年前 , 42F
規格書之前讀的。我不確定是 jserv 有少講前提條件還是你
03/13 16:58, 42F

03/13 16:58, 7年前 , 43F
少看,就像某樓講的,這樣讀其實不健康。
03/13 16:58, 43F

03/13 17:11, 7年前 , 44F
03/13 17:11, 44F

03/13 17:23, 7年前 , 45F
jserv是說有些人喜歡在那try老半天,得到結果很開心
03/13 17:23, 45F

03/13 17:25, 7年前 , 46F
可是有可能是未定義行為或者是跟編譯器有關
03/13 17:25, 46F

03/13 17:25, 7年前 , 47F
這時候直接翻規格書是最快途徑
03/13 17:25, 47F

03/13 17:26, 7年前 , 48F
如果只懂皮毛 翻規格書其實沒啥用拉
03/13 17:26, 48F

03/13 18:46, 7年前 , 49F
這說法跟原 po 第三行寫的出入有點大啊 XD
03/13 18:46, 49F
首先,再次感謝各位大大的回應,尤其是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
文章代碼(AID): #1QfHbwrj (C_and_CPP)
文章代碼(AID): #1QfHbwrj (C_and_CPP)