Contiki 3.0聲明setreg()
爲static
而在早期版本中不是static
。我需要訪問文件外部的功能才能執行setreg(CC2420_MDMCTRL0,0)
。 (https://github.com/contiki-os/contiki/blob/master/dev/cc2420/cc2420.c#L392)訪問文件外部的靜態函數
從函數原型中刪除static
關鍵字是否很好? 處理這類案件的標準做法是什麼?
Contiki 3.0聲明setreg()
爲static
而在早期版本中不是static
。我需要訪問文件外部的功能才能執行setreg(CC2420_MDMCTRL0,0)
。 (https://github.com/contiki-os/contiki/blob/master/dev/cc2420/cc2420.c#L392)訪問文件外部的靜態函數
從函數原型中刪除static
關鍵字是否很好? 處理這類案件的標準做法是什麼?
我不熟悉那個特定的代碼,但是如果一個函數被聲明爲static
這意味着它在translation unit以外是不可見的。
我想該軟件的作者有很好的理由來隱藏setreg
函數。你應該問他們爲什麼。
我想他們想讓你打電話公衆函數(如cc2420_set_cca_threshold
)調用內部setreg
。顯然,大多數這樣的功能正在鎖定&使用解鎖東西GET_LOCK
& RELEASE_LOCK
。
從函數原型中刪除static關鍵字是否很好?
沒有這將是可能非常錯誤的
什麼是標準的做法,以處理這類案件?
需要花費很多時間來了解特定軟件,研究其文檔和源代碼,理解編碼器使用的隱式不變量,並遵循它們。
(有一些操作系統的代碼一樣盲目地搞亂是肯定後患無窮;你可能甚至破壞你的硬件,如果你做錯了事情)