PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題]C 語言問題
作者:
kandrew
(藍天白雲~~)
2021-03-24 13:34:46
請問以下函式
void (* resetFunc) (void) = 0;
這段程式有什麼功用?
然後在程式中,做了判斷如下
if (error == 1)
{
resetFunc();
}
是否代表程式又從頭執行嗎? 謝謝您的回覆
作者:
james732
(好人超)
2021-03-24 13:37:00
關鍵字: function pointer
作者:
descent
(「雄辯是銀,沉默是金」)
2021-03-24 13:48:00
要執行位址 0 的程式碼
作者:
james732
(好人超)
2021-03-24 15:08:00
這應該是出現在單晶片用來做出問題reset的
作者:
cuteSquirrel
(松鼠)
2021-03-24 15:11:00
跳回去並且重新執行 擺在0x0000的程式碼有點像嵌入式應用的error handling,出錯強制重跑跑一些register reset/initialization的流程關鍵字就是一樓講的
作者:
TCPipv6
(TCP IPv6)
2021-03-24 15:15:00
你可以試著找找function pointer
作者:
a1781781781
(嘎了給給)
2021-03-24 15:16:00
推樓上,位置0x0通常是放reset中斷函式的位置,當有錯誤發生時,手動近reset函式,重新設定系統參數,再跳到main開始重新跑
作者:
cuteSquirrel
(松鼠)
2021-03-24 16:20:00
對,中斷向量相關的細節可以參考晶片的開發手冊
作者:
chuegou
(chuegou)
2021-03-25 12:33:00
這行的動作是把program counter這個暫存器填0記憶體0的位址如推文所說 通常是中斷向量表
繼續閱讀
[問題] 為什麼繼承裡面是父類別子類別?
lirpassmore
Re: [問題] heap use after free 問題
ucrxzero
[問題] heap use after free 問題
lemonsheep
[問題] error handler with C++
lattes
[問題] C++ vector如何包成dll給C#使用?
popen
[問題] 指標問題
Arim
Re: [問題] 請問語法問題
descent
[問題] 請問語法問題
pilipalabon
[分享] BBS 程式碼上色器
pinefruit
[問題] 請教link lib跟dynamic load dll的差異
Keitaro
Links
booklink
Contact Us: admin [ a t ] ucptt.com