<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    C語言優化小技巧

    發布時間:2014-3-25 16:06    發布者:edu118gct
    關鍵詞: C語言
      在編寫C語言程序后,經常需要對源碼進行優化,以提高程序的運行效率,下面簡述幾個常用的優化技巧以供大家參考:

    1.C于代碼在程序中的優化
      現在的C編譯器會自動對代碼進行優化,但這些優化是對執行速度和代碼長度的平衡。如果要獲得更小且執行效率更高的代碼,需要程序員手工對代碼進行優化。

    2.變量類型的定義
      不同的數據類型所生成的機器代碼長度相差很多,變量類型選取的范圍越小運行速度越快,占用的內存越少。能夠使用char(字符型)定義的變量,就不要使用整型(int)變量定義;能夠使用整型變量定義的變量就不要用長整型(long int),能不使用浮點(float)變量就不要使用浮點型(double)變量。
      相同類型的數據類型,有無符號對機器代碼長度也有影響。因此我們應按照實際需要合理的選用數據類型。當然,在定義變量后不要超過變量的作用范圍,如果超過變量的范圍賦值,C編譯器并不報錯,但程序運行結果卻錯了,而且這樣的錯誤很難發現。

    3.提高循環語言的效率
      在 C 語言中循環語句使用頻繁,提高循環體效率的基本辦法就是降低循環體的復雜性。在多重循環中,應將最長的循環放在最內層,最短的循環放在最外層。這樣可以減少 CPU跨切循環的次數。如例 1-1 的效率比 1-2 的效率要高:

    int i,j;

    for (i = 0; i < 10; i++)
    {
        for (j = 0; j < 20; j++)
        {
            ... ...
        }

    } // 例子 1-1

    for (j = 0; j < 20; j++)
    {
        for (i = 0; i < 10; i++)
        {
            ... ...
        }

    } // 例子 1-2


    4.采用數學方法優化程序
      數學是計算機之母,沒有數學的依據和基礎,就沒有計算機的發展,所以在編寫程序的時候,采用一些數學算法會對程序的執行效率有數量級的提高。有時候這個問題常常被大家忽略, 對于沒有經驗的程序員來說更是如此。例如:1100的自然數和sum = 100*(100+1)/2; 數學公式. (n + 1)*n/2。
      優化算法和數據結構對提高代碼的效率有很大的幫助。當然有時候時間效率和空間效率是對立的,此時應分析哪個更重要,做出適當的折中。另外,在進行優化的時候不要片面的追求緊湊的代碼,因為緊湊的代碼并不能產生高效率的機器碼。

      當然代碼優化的方法還有很多,這里只是簡單列舉幾個例子,希望能為初學者提供一些幫助,同時也歡迎大家留言交流。

    本文地址:http://www.portaltwn.com/thread-128105-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區
    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷