一開始接觸學習c語言,是在上大學的時候,老師拿著一本譚c跟我們談hello,world的程式,儘管現在看起來這個程式是乙個基礎的不能再的程式,但是我們總是忽視一些新手對這些的認識;所謂新手就是針對於某一項操作和乙個領域的沒有任何的經驗,所有的過程都是新鮮的;怎麼樣才能夠在這一陌生的環境中生存下去,這就需要對症下藥了,新手缺的是什麼,我們就應該補足什麼;新手缺的是經驗,那麼新手就應該不斷的積累經驗來彌補。
乙個合格的程式設計師,在接觸乙個新的技術的時候,我並不習慣將這一類人稱之為菜鳥,因為在你眼中這個所謂的菜鳥或許在別的領域中就是乙個你抬著頭都看不見的大牛。哈哈,這是實話;大實話;在學習c語言的過程中,就像我體會到的東西一樣,很多人都應該有著這樣的體會,c語言是乙個重視邏輯和結構的語言,它像乙個機械手臂幫助我們操控計算機的資源來實現我們想讓計算機來完成的工作;這是一套很博大精深的邏輯,或者換乙個詞來說,叫畫筆來更合適;乙個標準的程式設計師的嚴重,語言就是乙個幫助我們實現我們想象中世界的最有力的工具;我們如何去使用這個強有力的工具的最重要的一點就是要求我們對他的理解如何如何;
記憶體:如果乙個程式設計師不能夠清楚的認識到記憶體的重要性,那我也只能說,這位同志的要需要繼續學習c中的記憶體管理,c語言中整個一套體系都是建立在邏輯演算法的基礎上,邏輯是不可見了,在整個操作的工程中,我們唯一可見的就是實際的記憶體資料;記憶體將告訴我們程式執行到**了,程式錯在**了;可以打這樣的乙個比喻,當我們執行了乙個及時程式,然後瞬間程式結束了,什麼都沒有留在,在邏輯上記憶體是被清空了(當然實際中是沒有的),就像我們從來沒有執行過一樣;兩個時間點,兩個狀態;同樣說明了內存在程式執行的過程中的重要性;
格式:我們在記憶體中寫了一堆資料,對於我們來說或許這些資料石油意義的,但是不管如何,這些資料對於計算機來說,這些資料都是一堆0,1而已;甚至計算機直接將這堆0,1全部當成亂碼;哈哈;所以我們該怎麼樣告訴計算機,這些資料是有用的,並且告訴計算機該如何的使用這些資料;這就是格式;格式的範圍很寬泛,對於程式程式設計所制定的一切規則,就是格式;這樣便能夠清楚的告訴計算機,我想要計算機做些什麼了;
記憶體和格式就像兩個人一樣,記憶體像是電腦,而格式就像是程式設計師;而寫程式所涉及到的物件也只有這兩個而已;記憶體和格式整整的概括了計算機程式設計的所有元素;
也談C 記憶體區域
眾所周知,c 記憶體區域被分為5大類 棧 堆 自由儲存區 全域性 靜態儲存區 常量儲存區。棧由編譯器控制,棧空間的申請 使用和釋放全權由編譯器處理。這裡的 全權處理 意思是責任歸屬,並不是說編譯器在程式執行時介入管理。實際上,編譯器的工作在編譯期就完成了,它對棧的管理體現在編譯時對暫存器esp的維護...
從C語言專案談程式設計
很多初學c語言的小夥伴,在學習之初並沒有乙個大概的概念,學習這門語言需要掌握多少知識點,怎麼才算學的差不多?c語言的精髓點在哪?學到多少東西才能夠達到做專案的標準?學習的時候需要注意哪些細節點?疑問太多以至於壓得自己喘不過氣來。基本的資料操作,運算規則,常見程式結構設計 很多人覺得這麼幾點我都看了多...
從fread和mmap談C 讀檔案的效能
在進行大規模資料處理時,讀檔案很有可能成為速度瓶頸。不管你的cpu有4個核還是8個核,主頻有2g還是3g,硬碟io速度總是有個上限的。在本人最近的一次經歷中,對乙個11g的文字進行資料處理,一共耗時34.8秒,其中竟然有30.2秒用在訪問io上,佔了所有時間的87 左右。雖然說硬碟io是有上限的,那...