回覆列表
  • 1 # 使用者6338718972581

    說實話,這個問題問的比較大,C語言被譽為最靈活的語言,九曲十八彎,千變萬化,如何是程式高效率執行取決於程式設計師對計算機底層的理解和對C語言的熟練掌握。但單從答題的方面考慮,我在這裡提出幾點僅供參考:

    1.使用指標:對於指標的理解簡單點可以認為類似於彙編中的定址方式,正是指標的存在使C語言威力無窮。有些程式用其他語言也可以實現,但C能夠更有效地實現;有些程式無法用其它語言實現,如直接訪問硬體,但C卻可以。正因為指標可以擁有類似於彙編的定址方式,所以可以使程式更高效。

    2.使用宏函式:函式和宏函式的區別就在於,宏函式佔用了大量的空間,而函式佔用了時間。函式呼叫是要使用系統的棧來儲存資料的,如果編譯器裡有棧檢查選項,一般在函式的頭會嵌入一些彙編語句對當前棧進行檢查;同時,CPU也要在函式呼叫時儲存和恢復當前的現場,進行壓棧和彈棧操作,所以,函式呼叫需要一些CPU時間。而宏函式不存在這個問題。宏函式僅僅作為預先寫好的程式碼嵌入到當前程式,不會產生函式呼叫,所以僅僅是佔用了空間,而使程式可以高效執行。在頻繁呼叫同一個宏函式的時候,該現象尤其突出。

    3.使用位操作:位操作可以減少除法和取模的運算。在計算機程式中資料的位是可以操作的最小資料單位,理論上可以用"位運算"來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做資料變換使用,但是,靈活的位操作可以有效地提高程式執行的效率。

    4.迴圈巢狀中將較長迴圈設為記憶體迴圈,較短迴圈設為外接迴圈,以減少cpu跨切迴圈層的次數,提高程式的執行效率。

  • 中秋節和大豐收的關聯?
  • 孩子溫度幾度才是正常的?