|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
想問大蝦一個可重入函數(shù)的問題! |
| 作者:coolJoe 欄目:嵌入式系統(tǒng) |
我知道Keil C51會把局部變量分配到內(nèi)存固定地址(當(dāng)然首先盡可能使用寄存器),這樣局部變量實際就是全局變量了,所以Keil C51的函數(shù)一般不可重入的,但我想問的是如果函數(shù)局部變量被分配到了寄存器中,要定義這個函數(shù)為可重入函數(shù)是不是只要在函數(shù)定義的時候加關(guān)鍵字reentrant就可以了? 如果函數(shù)的局部變量有被分配到內(nèi)存中的,那么怎么樣來把這個函數(shù)定義為可重入函數(shù)? 謝謝! |
| 2樓: | >>參與討論 |
| 作者: computer00 于 2006/4/27 9:30:00 發(fā)布:
加上reentrant,keil編譯器會使用軟堆棧的方法來保存數(shù)據(jù) 不會分配寄存器變量。 |
|
| 3樓: | >>參與討論 |
| 作者: coolJoe 于 2006/4/27 9:45:00 發(fā)布:
那么我還想問一下! 如果程序編譯后我知道這個函數(shù)變量都已經(jīng)分配到寄存器中了,那么要定義這個函數(shù)為可重入的函數(shù)怎么做?如果程序編譯后知道這個函數(shù)的變量被分配到了內(nèi)存中,要定義這個函數(shù)為可重入函數(shù)又該怎么做!謝謝! |
|
| 4樓: | >>參與討論 |
| 作者: computer00 于 2006/4/28 1:52:00 發(fā)布:
在函數(shù)后面加關(guān)鍵字reentrant |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |