1樓:齋子鏡瓊怡
可以的。
c語言規定,任意函式均可以巢狀呼叫。所以子函式可以呼叫其它子函式,也可以呼叫自身。
如int func(int a)
這樣呼叫自身的稱為遞迴呼叫。
又如:int fa(int a)
int fb(int a)
這就是不同函式呼叫的例子。
2樓:匿名使用者
1、c語言可以巢狀呼叫或遞迴呼叫子函式。
在c語言中,函式巢狀允許在一個函式中呼叫另外一個函式。例如funca()
這個就叫做巢狀呼叫,它是一個語言提供的程式設計的方法,也就是語言的特性。
2、遞迴,是一種解決方案,一種思想,將一個大工作分為逐漸減小的小工作,比如說一個人要搬50塊石頭,他想,只要先搬走49塊,那剩下的一塊就能搬完了,然後考慮那49塊,只要先搬走48塊,那剩下的一塊就能搬完了……以此類推的思考,遞迴是一種思想,只不過在程式中,就是依靠函式巢狀這個特性來實現了。例如
funca()
遞迴最明顯的特點就是,自己呼叫自己(就是函式巢狀呼叫)
3樓:匿名使用者
void math_x() reentrant然後應該就沒警告了。
這個警告是告訴你,該函式沒有被設計為允許重入(遞迴),一般來說,沒有為重入進行特別設計的函式,如果執行時被中斷給斷掉,那麼它所使用的一些暫存器狀態可能已經被中斷破壞,從而程式可能會出錯。
你加了reentrant之後,理論要應該確保你的函式即使被中斷,等中斷返回後依然能正確執行。
51微控制器c語言中斷函式不能進行引數傳遞,是什麼意思,誰能解釋一下
4樓:匿名使用者
是指中斷處理函式不能有輸入引數也不能有函式返回。因為中斷都是些硬體自動呼叫,沒有程式去給他傳遞引數,也沒有硬體去接收引數。
不過x86計算機的軟中斷可以有引數傳遞,不過他是用暫存器傳遞的。
5樓:
1、51微控制器c51語言中斷函式本身不帶引數傳遞,但你可以使用全域性變數進行引數傳遞。
2、所謂中斷函式不能進行引數傳遞,是指呼叫函式時能否帶引數,c51是不能的,但完全可以使用全域性變數的方式實現帶引數的功能。
6樓:匿名使用者
就是說不能像呼叫普通函式那樣直接傳遞引數
可以用全域性變數傳遞引數
7樓:匿名使用者
有可能是記憶體不夠用了。
問個關於51微控制器呼叫函式的時間問題(c語言) 20
8樓:匿名使用者
既然想到了用定時器 怎麼不繼續往下想呢 想要時間儘量精確 定時器是首選
9樓:
定時器開總中斷ea=1;
定時器中斷 et0=1或et1=1;
開啟定時器tr0\1=1;
寫定時器中斷函式
10樓:匿名使用者
下面的是我用定時器0做的延時函式,你看看,可以精確到10ms,如果你還想精確,調定時器的初值就可以。最高精度是1ms.
void inittimer0(void) reentrant // initialize t0 for timer 0.01s
// timer0 interrupt
void timer0_isr(void) interrupt 1 // timer0 interrupt
// delay time
void delaytime(int16u sec, int16u msec) reentrant // time delay function
11樓:溫馨鬼腳七
用定時器肯定可以精確地控制時間啊
12樓:哨案亞該
定時器是可以的,,不過要用到至少兩個執行緒才可能比較好
51微控制器c語言程式設計子函式呼叫問題 程式功能是實現四個獨立按鍵控制數碼管四個位的段選來動態掃描
13樓:匿名使用者
你的顯示子程式的名稱是:
void digdispaly()
可是在主程式呼叫時,卻寫成了
digdisplay();
比較一下,這兩個一樣嗎,難道都不是你自己寫的嗎?
51微控制器中組合語言如何呼叫c的子程式?
14樓:匿名使用者
我的程式是keil編譯的,如下
先申明extrn code (_send_crc) ;send_crc是c中的函式,彙編中加了_
呼叫的時候
lcall _send_crc
如果要專
使用c中的變數,那麼code變成
屬相應的data,xdata等
15樓:匿名使用者
我的程bai序keil編譯器,
extrn code(du_send_crc)的第一個國家zhisend_crc c函式編譯加上呼叫dao_lcall _send_crc
如果您要成相應的資料,然內後使用容變數在c,xdata**
16樓:匿名使用者
我的程來序keil編譯器,
extrn code(_send_crc)的第一自個國家send_crc c函式編譯加上bai呼叫_lcall _send_crc
如果您要成相應du的zhi資料,然後使用變數dao在c,xdata**
17樓:匿名使用者
用逆向思維考慮就是在c語言下插入彙編
18樓:匿名使用者
查查c的編譯
器和彙編編譯器的資料,上面有詳細的說明。
一般在彙編中用extern宣告外專部函式,將c語言中屬的函式名前面加上下劃線就是彙編的函式名,有些編譯器是這樣的,並不是所有的編譯器都是這樣的。還是要查編譯器的使用說明才能知道你用的編譯器是怎麼操作的。
如果是keil,應該是上面的操作。
19樓:匿名使用者
請您留下郵箱,我給您個檔案,您就知道如何
c語言中的函式呼叫
include int fun1 int x,int y,int z int fun2 int x,int y,int z int main void int fun1 int x,int y,int z int fun2 int x,int y,int z 你要使用,你寫的函式求出的值,那就要有個...
C語言中函式呼叫問題
如果一個函式要使用引數,它就必須定義接受引數值的變數。形式引數與實際引數 函式定義時填入的引數我們稱之為形式引數,簡稱形參,它們同函式內部的區域性變數作用相同。形參的定義是在函式名之後和函式開始的花括號之前。呼叫時填入的引數,我們稱之為實際引數,簡稱實參。必須確認所定義的形參與呼叫函式的實際引數型別...
c語言中,函式返回值怎麼用,c語言中呼叫函式如何返回多個值?
斑駁丶4129仉 一般用0表示函式執行正確,正常返回 用負數表示函式執行出錯,每個值可以提前定義,根據出錯的值進行出錯處理。誠心為您解答每一個問題!如您滿意請採納最佳!如有疑問請繼續追問!您的好評是我們前進的動力,相互幫助,一起進步! return後接一個值。在呼叫這個函式的函式裡面,呼叫它的時候希...