第194章 C專家編程
追溯SCI論文數成為科研考核量化標準的歷史,我們不難看出,從某種程度上講,SCI“逼迫”著中國科學家向國際核心學術期刊投稿,把自己的科研成果放到國際科學大展臺上,接受全世界科學家的評判。
正如一位科學家所說:“這是中國科學家走向國際的必由之路!
雖然說法各不相同,但是制度這種東西,輪不到章杉操心~
他現在要做的事情是了解規則,以及充分的運用規則。
而不是去當規則的破壞者~
雖然在寫字間突然get到系統的彩蛋:
“宿主在完成0級論文,故而在宿主完成論文骨干部分的情況下,可由系統自動生成完整的論文~
說明:該效果僅僅在宿主位于系統所贈的寫字間類建筑方可生效!
讓章杉有點意外,但這點小狀況并沒有阻止章杉前進的步伐。
緊跟著章杉按照原計劃開始鞏固教材上的知識~
說是鞏固教材上的知識,章杉并沒有死捧著課本閱讀!
而是從在書房里掏出一本《C專家編程》閱讀起來。
雖然這本書算上附錄也不過才291頁!
但卻被無數相關從業人員紛紛推薦~
大家好 我們公眾 號每天都會發現金、點幣紅包 只要關注就可以領取 年末最后一次福利 請大家抓住機會 公眾號[書友大本營]
這本書展示了最優秀的C程序員所使用的編碼技巧,書中專門開辟了一章對C++的基礎知識進行了介紹。
書中對C的歷史、語言特性、聲明、數組、指針、鏈接、運行時、內存以及如何進一步學習C++等問題進行了細致的講解和深入的分析。
全書擷取幾十個實例進行講解,對C程序員具有非常高的實用價值。
本書可以幫助有一定經驗的C程序員成為C編程方面的專家,對于具備相當的C語言基礎的程序員,本書可以幫助他們站在C的高度了解和學習C++。
這恰恰比較契合章杉的情況,章杉當即就開始了對這本書的閱讀。
書的開篇就吸引了章杉,倒不是因為這本書一開始就是什么宏偉的敘述~
恰恰相反一開始的敘述是這樣的:
“聽上去有些荒謬,C 語言的產生竟然源于一個失敗的項目。1969 年,通用電氣、麻省理工學院和貝爾實驗室聯合創立了一個龐大的項目--Multics 工程。該項目的目的是創建一個操作系統,但顯然遇到了麻煩:它不但無法交付原先所承諾的快速而便捷的在線系統,甚至連一點有用的東西都沒有弄出來。
雖然開發小組最終勉強讓 Multics 開動起來,但他們還是陷入了泥淖,就像IBM 在 上面一樣。他們試圖建立一個非常巨大的操作系統,能夠應用于規模很小的硬件系統中。Multics 成了總結工程教訓的寶庫,但它同時也為 C 語言體現“小即是美”鋪平了道路……”
雖然這些話都是比較空洞的講述歷史,但章杉恰恰就吃這一套~
對于上來就用極其專業的語言來講述C語言該如何如何的,章杉半點好感都沒有!
良好的開頭是成功的一半~
不知不覺中,章杉便入了迷~
作者還是十分較真的,在書里認真地探討了是先有C語言還是先有UNIX呢?
說起這個問題,人們很容易陷入先有雞還是先有蛋的死循環中~
然而,作者討論的不是家禽趣聞,而是編程故事。
這本書中作者認真地指出,UNIX比C 語言出現得早。
這也是為什么 UNIX 的系統時間是從 1970年1月1日起按秒計算的,它就是那時候產生的啊~
不過說起來這本書里面描寫C歷史的篇幅是相當有限的!
之后則完完全全的干貨滿滿
“盡量不要在你的代碼中使用無符號類型,以免增加不必要的復雜性。尤其是,不要僅僅因為無符號數不存在負值(如年齡、國債)而用它來表示數量。盡量使用像 int 那樣的有符號類型,這樣在涉及升級混合類型的復雜細節時,不必擔心邊界情況(如-1 被翻譯為非常大的正數)。只有在使用位段和二進制掩碼時,才可以用無符號數。應該在表達式中使用強制類型轉換,使操作數均為有符號數或者無符號數,這樣就不必由編譯器來選擇結果的類型!
“許多操作數類型為算術類型的雙目運算符會引發轉換,并以類似的方式產生結果類型。...如果其中一個操作數的類型是 unsigned long int,那么另一個操作數也被轉換為 unsigned long int。其次,如果其中一個操作數的類型是 long int,而另一個操作數的類型是 unsigned int,如果 long int 能夠完整表示 unsigned int 的所有值,那么 unsigned int 類型操作數被轉換為 long int,如果 long int 不能完整表示 unsigned int 的所有值,那么兩個操作數都被轉換為 unsigned long int。再次,如果其中一個草所屬的類型是 long int,那么另一個操作數被轉換為 long int。再再次,如果其中一個操作數的類型是 unsigned int,那么另一個操作數被轉換為 unsigned int!
“……”
“除了遞歸調用之外,堆棧并非必需。因為在編譯時可以知道局部變量、參數和返回地址所需空間的固定大小,并可以將它們分配于L和FORTRAN的早期編譯器并不允許函數的遞歸調用,所以它們在運行時并不需要動態的堆棧。允許遞歸調用意味著必須找到一種方法,在同一時刻允許局部變量的多個實例存在,但只有最近被創建的那個才能被訪問,這很像棧的經典定義。”
盡管動輒長篇大論,但有一說一,這本書的寫作風格還是很舒服的~
基本上書中的內容都是循序漸進的。
而不是和《手把手教你學XXX》/《XXX從入門到精通》這類書一般,章節難度布置的毫無規律可言!
章杉很喜歡這本書的章節名——《如果我的目標是那里,我不會從這里起步》
按照書中的話“編程語言的主要目標是提供一個框架,用計算機能夠處理的方式表達問題的解決方法,編程語言越是能體現這個原則,就越成功……”
在這句話的指引下,章杉對過往學過的種種編程語言有了些新的見解。
盡管這種認知并不意味著質變,但正是一點點量變的積累才醞釀了質變!
。骸#
(https://www.dzxsw.cc/book/170215/8636243.html)
1秒記住大眾小說網:www.dzxsw.cc。手機版閱讀網址:m.dzxsw.cc