我正在VxWorks上開發嵌入式應用程序。C中的靜態函數和非靜態函數之間的差別
我知道靜態函數僅在定義文件中調用,並且在源項目中的任何文件中調用非靜態函數。
我不知道是否有靜態和非靜態函數concening執行時間和有關內存之間的差異
我正在VxWorks上開發嵌入式應用程序。C中的靜態函數和非靜態函數之間的差別
我知道靜態函數僅在定義文件中調用,並且在源項目中的任何文件中調用非靜態函數。
我不知道是否有靜態和非靜態函數concening執行時間和有關內存之間的差異
絕對沒有任何性能上的差異。 static
關鍵字在函數上唯一的作用是給它們內部的linkage,這意味着它們只能在定義的文件中訪問。
執行時間或運行時內存要求沒有差別。
一些(許多?)連接器會發現更容易發現未使用的靜態函數並將它們放下,因此它們可能會鼓勵更小的代碼大小。
這取決於你的編譯器。靜態函數理論上可以更好地優化,因爲編譯器會知道它們被調用的所有地方。你應該能夠從你的編譯器中獲得彙編列表,並且找出它們是否更有效。
運行性能有差異嗎?而不是關於編譯和鏈接? – MOHAMED
爲什麼這會降低投票率? –