C語言學習總結

來源:互聯網
上載者:User
        最近公司指派任務,為平台3.0下一階段研發工作對PG進行研究,其實PG的移植工作一直由演算法部在負責,但是PG移植後的任務卻是擔當這整個平台軟體的底層資料存放區,交易處理,資料採礦等方面工作,所以就索性將這一快拿到了平台部來做。因為我所負責的RCP這部分在功能性上基本上也算是告一段落,目前主要就是帶帶新人,在架構型上進一些指導工作,而學習C語言對我來說有兩大好處:1.考試是需要考C和資料結構的;2.學習C語言能夠協助我理解程式在執行過程中的運行情況,能更清楚的瞭解電腦底層結構。

        在近兩周對PG代碼的閱讀中對C和系統底層都有了更進一步的瞭解,就進程而言,以前根本不理解,只知道程式運行就需要一個進程,對進程包含那些東西,建立進程需要那些資源,都是毫無概念的,在閱讀PG代碼的過程中通過網上、書籍的查閱後,對進程有了進一步的瞭解。

        學習C語言最難的無疑是指標,幾乎每一位C語言學習者在處理指標問題上都是傷透腦經的。因為你要真正搞懂C程式,你就必須知道指標所指向的內容是什嗎?是指向具體數值、是指向記憶體位址、數組、亦或是函數等等。因為指標是unsafe的,所以在開發的時候腦子裡一定要對記憶體結構有一個清晰的認識,否這就很有可能出現堆疊溢位的錯誤了。作為總結,那就把學習的經驗記下來,以後再次翻閱時也好有一個提示:在閱讀指標時首先從未定一標識符開始,遇到擴符變向解析,如此反覆,直至定義結束。

        在PG這種多進程程式中,進程間是如何通訊的呢?我們都知道線程通訊可以採用互斥鎖來實現,那麼進程通訊如何?呢?在PG中是採用共用記憶體的方式實現的(還有沒有其他的方式我不知道),在主進程中建立記憶體虛擬檔案鏡像映射表,各個子進程通過同步訊號量來決定是否進入訪問共用記憶體,從而實現處理序間通訊的。

        C語言中字串處理對我來說是一個大問題,在進階程式設計語言(C#、JAVA)中我可以輕鬆的採用StringBuilder或是String.Format()等方式來實現字串的拼接,而C中即便是處理這麼一個小小的字串拼接問題都會用到指標,相當頭痛。

        唯一值得慶幸的是在經過N多天的努力後,終於將PG跑起來,並且能夠DEBUG了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.