• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            happem

            #

            基于C語言基礎概念

            C語言對現代編程語言有著巨大的影響,許多現代編程語言都借鑒了大量C語言的特性,在眾多基于C的語言中,以下幾種非常具有代表性。

            1C++包括了所有C特性,但增加了類和其他特性以支持面向對象編程。

            2java是基于C++的,所以也繼承了C的許多特性。

            3C# 是由C++java發展起來的一種特新的語言。

            4perl 最初是一種非常簡單的腳本語言,在發展過程中采用了C的許多特性

            考慮到這些新語言的普及程度,人們自然會問:“C語言還值得學習嗎?”我想答案是肯定的。原因如下:第一,學習C有助于更好的理解C++javaC#perl以及其他基于C的語言特性,一開始就學習其他語言的程序員往往不能很好的掌握承自C語言的基本特性;第二:目前仍有許多C程序,我們需要讀懂并維護這些代碼;第三,C語言仍然廣泛用于新軟件開發,特別是內存或者處理能力受限的情況下以及需要使用C語言簡單特性的地方。

            與其他任何編程語言一樣,C語言也是有自己優缺點:

            1C語言是一種底層語言。為了適應系統編程的需要,C語言提供了對機器級概念的訪問,而這些是其他編程語言試圖隱藏的內容。此外,C語言還提供了與計算機內置指令緊密協調的操作,使得程序可以快速執行。

            2C語言是一種小型語言。與其他許多編程語言相比,C語言提供了一套更有限的特性集合。

            3C語言是一種包容性語言。C語言假設用戶知道自己在做什么,因此它提供了比其他許多語言更廣闊的自由度,此外,C語言不像其他語言那樣強制進行詳細的錯誤檢查。資源來自:http://www.lirenedu.org/index.php?ack=xinwen&id=1024 擴展閱讀更多。

            posted @ 2012-08-20 10:41 happem 閱讀(132) | 評論 (0)編輯 收藏

            Uart和Modem接口描述

            1.       UART接口描述:

            通用異步收發器UART是用硬件實現異步串行通信的通信接口電路,在記者原基礎上可以擴展閱讀接口下仲裁與時鐘都實現,UART異步串行通信接口是嵌入式系統最常見都接口,可用來與上位機或其他外部設備進行數據通信。

            由于UART應用都普通性,所以大部分微控制器內部都集成有UART接口,但是不同類型都微控制器的UART接口內部電路和操作寄存器并不一定相同。

              LPC2000系列ARM7微控制器均具有兩個UART,它們的結構及寄存器符合16C550工業標準。

            2.       UART16c550rs232的區別:

            Uart是通用異步串行通信接口的總稱,uart允許在串行鏈路上進行全雙工的通信,輸出/輸入的電平為TTL電平。一般來說,全雙工UART定義了一個串行發送引腳和一個串行接收引腳,可以在同一時刻發送和接收數據。但是不同芯片都UART接口內部電路、操作寄存器和工作模式并不一定相同。比如標準80c51UART接口為全雙工的UART,但沒有波特率發生器。一個控制寄存器SCON和一個串口數據緩沖區SBUF寄存器,支持8位、9位數據傳輸模式。

            16c550是一種工業標準的UART,此類UART芯片內部集成了可編程的波特率發生器、發送/接收FIFO、處理器中斷系統和各種總線狀態錯誤檢測電路等等,并具有完全的MODEM控制能力,工作模式為全雙工模式,支持5-8位數據長度,1/2位停止位,可選其偶校驗位。

               Rs232是美國電子工業協會制定的串行通信標準,又稱ra-232-C,早期它被應用于計算機和調制解調器的連接控制,MODEM在通過電話線進行遠距離的數據傳輸。RS232是一個全雙工的通信標準,它可以同時進行數據接收和發送的工作。RS232標準包括一個主通道和一個輔助通道,在多數情況下主要使用主通道,即RXDTXDGND信號。

             嚴格地講,RS232接口是DTEDCE之間的一個接口,DTE包括計算機、終端和串口打印機等設備。DCE通常只有MODEM和某些交換機等。

             

             

            posted @ 2012-08-14 09:10 happem 閱讀(4092) | 評論 (0)編輯 收藏

            函數calloc和realloc概念

            數組比鏈表更加適于快速排序、查找和數據訪問。然而,數組通常是靜態數據結構。通用程序庫(stdlib.h)提供了另外兩個函數來動態分配內存,這兩個函數是calloc和realloc。這些函數可以用于創建和修改動態數組。數組指針可以像數組那樣使用下標。所以,calloc所創建的連續內存空間的指針可以像數組那樣處理。函數calloc動態為數組分配內存。

            Calloc的原型是:

            Void * calloc(size_t nmemb,size_t size);

            函數有兩個參數,即元素的個數和每個元素的大小,并將數組的元素初始化為0,函數返回值指向已分配內存的指針,或者,如果沒有分配內存,則返回NULL指針。Malloc和calloc之間的主要差別在于,calloc清理它所分配的內存,而malloc不清理。

            函數realloc修改前面對malloc、calloc或者realloc的調用而分配的對象大小。如果分配的內存大雨以前分配的數量,則不會修改原始對象的內容。否則,原對象中從起始位置到新對象大小的這一范圍內的內容不會發生變化,realloc的原則是:

            Void * realloc(void * ptr,size_t size);

            函數realloc有兩個參數,指向原始對象的指針和對象的新大小,如果ptr是NULL,則realloc的工作方式和malloc一樣。如果size是0,而ptr不是MULL,則釋放對象的內存,否則,如果ptr不是NULL,而大小大于0,則realloc試圖為對象分配新的內存塊,如不能分配新的空間,則ptr所指向對象將不會發生變化。函數realloc返回指向重新分配內存的指針,或者MULL指針。

            來自里仁教育網:http://www.lirenedu.org/index.php?ack=xinwen&id=1105

            posted @ 2012-08-01 16:59 happem 閱讀(450) | 評論 (0)編輯 收藏

            C++對象的內存映像

            什么是C++對象模型?要想理解它,必須把C++語言層面的面向對象特征和概念與對象的底層實現技術結合起來進行分析。前者如構造函數、拷貝和賦值函數、析構函數、靜態成員、虛函數、繼承、組合、動態創建對象、RTTI等。后者則是語言是實現隱藏起來的細節,如對象的內存映像、vtable的構造、vptr的插入和初始化時機、構造和析構函數的自動調用時機、對象的構造和析構次序、臨時對象的創建和銷毀、RTTI的底層實現技術,等等。

             對象模型涉及的內容非常之多,構成了一套完整的語言實現體系,我們不可能講述其中的每一個主題,僅進行粗淺的介紹,以起到拋磚引玉的作用。

             了解對象首先要知道對象在內存中的布局,也就是對象在內存中如何存放和表示的。這里我們簡單闡述一下C++類的內存映像。

               Class rectangle

            {   pibilc:

                 Rectangle();m-length(1),m-width(1){……}

                ~rectangle(){…}

                  Float getlength()const{return m-length;}

                  void setlength(float length){m-length;}

                  float getwidth()const{return m-width;}

                  void setwidth(float width){m-width=width};

                  void draw(){….}

            static unsigned int getcount(){return m-count;}

            protected:

             rectangle(const rectangle©){….}

            rectangle& operator=(const rectangle& assign){….}

            private:

             float m-length;   //

             float m-width;    //

             static unsigned int m-count; //對象計數

            }

            Rectangle 這種基本的C++對象模型有下述幾個規則:

            l         非靜態數據成員被放在每一個對象體內作為對象專有的數據成員;

            l         靜態數據成員被提取出來放在程序的靜態數據區內為該類所有對象共享,因此僅存在一份;

            l         靜態和非靜態成員函數最終都是被提取出來放在程序的代碼段中并為該類的所有對象共享,因此每個成員函數也只存在一份代碼實體;

            l         類內嵌套定義的各種類型與放在類外面定義的類型除了作用域不同外沒有本質區別。

            因此,構成對象本身的只有數據,任何成員函數都不隸屬任何一個對象,非靜態成員函數與對象的關系就是綁定,綁定的中介就是this指針。

            posted @ 2012-08-01 16:54 happem 閱讀(515) | 評論 (0)編輯 收藏

            工程師的發展之路,不一樣的人生!

            文章發自:http://www.lirenedu.org/index.php?ack=xinwen&id=545 

            中長期規劃---螺旋式上升方式修改完善職業之路
                          
                一、中長期職業發展的自我準備:

              1、心態上隨時做好準備 機會是給有準備的人的------“有準備”是你在做準備的過程中讓“別人”認為你“有準備”!別人是包括你現在的老板和別的老板,以及你身邊的人!他們對你的賞識程度決定了你的機會
                   2、專注于自己的優勢  70%專注于長處,25%專注于學新事物,5%專注于避免短處
                   3、不斷修正自己的技術方向,擴大自己的知識與能力的金字塔  增強自己的核心競爭力,但盡量別改變太多太快(今天做手機、明天做電視、后天做空調,這樣很亂的,大大不利)
                   4、積極爭取機會 柳傳志說,楊元慶就是“哭著喊著要進步”,實際上,就是爭取自己的機會;當然,這種強烈的進步欲望,也是領導看重的地方。每一步都走在前面,積累多了,你就有了比其他人更多的機會了。要積極爭取如下機會:
                 a、新項目的機會  
                  b、到新部門的機會  
                  c、帶新人的機會 如果公司不安排帶,那就自己主動去幫助新人,做半個師傅。
                  d、管理項目的機會  
                  e、管理團隊的機會(卡位非常非常重要) 
                  5、做多攬活干的傻子    與工作相關的事情,沒人做就主動去做;別人沒干好就主動幫他們干好  要樂意去干工作職責范圍以外的事情
                  6、使自己變得不可替代  最重要的就是,別人做到的你要做得更加好,別人做不到的你就要做到,要不斷超越老板的期望!才能贏得老板或者別的老板的信任,才能得到更多的機會與回報!
                  7、 關注技術、公司及相關行業的發展,達到對技術、技術發展趨勢、團隊管理、行業情況與發展趨勢等能吹能侃的地步
               
                二、中長期規劃時間表(想升官的想發大財的朋友):
                

             0-2年內      多干藍領的工作,多學習多積累技術經驗
                 2-4年內       多看技術發展趨勢方面文章,多交與本職崗位相關的朋友
                 4-6年內        多看技術發展趨勢與行業發展趨勢文章,多交與本部門業務相關的朋友
                 6年以后       多看管理書籍,多了解行業發展趨勢,多交與本行業相關的朋友
                 8年后--        多與產業鏈的朋友及資本相關的朋友交流

                如果不想操心太多,就想走技術專家路線的朋友,請把0-6年的3個階段繼續延續下去。

               三、需要糾正的幾個觀念:

               1、不是每個工程師都適合做管理的        走技術路必然會和走管理路分開
                   2、不是人人都可以做市場做銷售的        性格、親和力、知識結構等影響很大
                   3、不是人人都可以做老板開公司的       小老板辛苦程度高,其實還不如高級白領滋潤(特別是IC,最適合工程師打工的)
               
               四、螺旋式上升方式修改完善職業之路  

               大公司與小公司循環,職位與薪水自然跟著循環,職業生涯平臺自然跟著上(當然能在公司內部上升自然最好) ;

            posted @ 2012-07-04 09:38 happem 閱讀(251) | 評論 (0)編輯 收藏

            從存儲器映射的I/O取指

            不同ARM的實現在存儲器指令取指時會相當大的區別,因此強烈建議存儲器映射的I/O位置只用于數據的裝載和保存,不用與指令取指,任何依賴于從存儲器映射I/O位置取指的系統設計都可能難以移植到將來的ARM實現。

            2.    對存儲器映射I/O數據訪問:

            一個指令序列在執行時,會在不同的點訪問數據存儲器,產生裝載和保存訪問的時序,如果這些裝載和保存訪問是正常的存儲器位置,那么在它們訪問相同的存儲器位置時,只是執行交互操作,結果,對不同存儲器位置保存和裝載可以按照不同于指令的順序執行,但不會改變最終的結果,這種改變存儲器訪問順序的自由被存儲器系統用來提高性能。

            此外,對同一存儲器位置的訪問擁有其他可用提升性能的特性,其中包括:

            1) 從相同的位置連續加載產生相同的結果。

            2) 從一個位置執行加載操作,將返回最后保存到該位置的值。

            3) 對某個數據規格的多次訪問有時可合并成單個的更大規模的訪問,例如,分別存儲一個字所包含兩個半字可合并成單個字的存儲。

            但如果存儲器字、半字或字節訪問的對象是存儲器映射的I/O位置。一次訪問會產生副作用,使后續訪問改變成一個不同的地址。如果是這樣,那么不同時間順序的訪問將會使代碼序列產生不同的最終結果,因此訪問存儲器映射I/O位置時不能進行優化,它們的時間順序絕對不能改變。http://www.lirenedu.org/index.php?ack=xinwen&id=1081 

            posted @ 2012-07-04 09:36 happem 閱讀(1163) | 評論 (0)編輯 收藏

            對象類的概念

            繼承

            對象類的概念是很有用的,因為對象類可以實現用最小的代價創建許多新的對象實例。使用繼承機制可使得這一概念更加有用[TAIV96]。

              繼承可以在已有類上定義新的對象類。稱為子類的新類,將自動包含稱為父類的原始類所定義的方法和變量。子類在許多方面不同于父類:

            1. 子類可以包含父類中所沒有的方法和變量。

            2. 子類可以通過重新定義來重載父類中任何相同名字的方法和變量。這提供了處理特例的簡單有效方法。

            3. 子類可以對從父類繼承的方法或變量在某些方面加以限制。

            繼承機制是遞歸的,可以實現子類成為其子類的父類。這樣,就建立了一種繼承層次,從概上可以認為繼承層次是定義了一種方法和變量的搜索技術。當一個對象收到一個消息,而執行沒有在其類中定義的方法時,對象將沿繼承層次向上搜索直至找到該方法。類似地,,如果一種方法的執行造成相關變量沒有在該類中定義,則對象就會沿著繼承層次向上搜索變量名。

            多態性

            多態性是一個很有趣且很有用的特性。它使得把不同實現隱藏于共同接口之后成為可能。兩個多態的對象使用相同的方法名字,對其他對象呈現相同接口。例如,對不同的輸出設備會有許多打印對象,如printDotmatrix、printLaser、printScreen等;或是不同類型的文件,如printText、printDrawing、print-Compound。如果每一對象包含一個稱為print的方法,那么通過向合適的對象發送print消息,任何文件都可以被打印,而不必關心方法是怎樣真正實現的,多態性典型地應用于一個父類的多個子類的相同方法,每個方法都有一個不同的具體實現。

            將多態性與常用的標準組件編程技術進行比較是有益的。自上而下的標準組件設計的目的是要使用高層模塊的固定接口實現底層模塊的通用效用。可以實現一個較低層的模塊被許多不同的高層的模塊使用。

            接口

            接口使得子類對象使用父類的功能,有時需要定義一個具有多個父類功能的子類,這可能對相應產生一個子類繼承多個父類。C++是一種允許多重繼承的語言。然而,為簡單起見,大多數現代面向對象編程語言,如java、C#和Visual Basic.NET,限制一個子類能繼承一個父類。相反,接口為人所知的特征是可以實現一個類借用類中的一些功能或是借用完全不同類的功能。
            源地址:http://www.lirenedu.org/index.php?ack=xinwen&id=1086 

            posted @ 2012-07-03 11:05 happem 閱讀(308) | 評論 (0)編輯 收藏

            僅列出標題
            共2頁: 1 2 
            91久久精品视频| 日韩精品久久久肉伦网站| 香港aa三级久久三级| 999久久久国产精品| 久久精品中文字幕一区| 久久久久无码精品国产| 狠狠色伊人久久精品综合网| 合区精品久久久中文字幕一区| 久久亚洲AV成人无码电影| 久久精品亚洲欧美日韩久久| 中文字幕久久精品无码| 香蕉久久一区二区不卡无毒影院| 99久久国产亚洲综合精品| 久久福利青草精品资源站| 思思久久99热只有频精品66| 久久er国产精品免费观看2| 亚洲中文字幕无码久久综合网| 国内精品久久久久久久亚洲| 久久久亚洲欧洲日产国码aⅴ | 97久久超碰国产精品2021| 久久精品成人| 国产L精品国产亚洲区久久| 久久综合88熟人妻| 影音先锋女人AV鲁色资源网久久| 久久国产综合精品五月天| 久久婷婷国产麻豆91天堂| 麻豆成人久久精品二区三区免费| 久久99热这里只有精品66| 欧美亚洲日本久久精品| 久久精品综合一区二区三区| 青青青国产精品国产精品久久久久| 亚洲成色WWW久久网站| 久久成人国产精品免费软件| 久久国产亚洲精品| 久久人与动人物a级毛片| 国产毛片欧美毛片久久久| 国产精品久久久久蜜芽| 狠狠色噜噜色狠狠狠综合久久| 久久99热这里只有精品66| 久久精品国产亚洲AV香蕉| 久久亚洲私人国产精品vA|