|
標(biāo)準(zhǔn)c語言的局部變量可以看《數(shù)據(jù)結(jié)構(gòu)》遞歸那一章。
Keil c51不是標(biāo)準(zhǔn)c語言,不搞堆棧分配局部變量那一套,而是采用靜態(tài)分配,舉個栗子:
- f(){
- int i;
- }
- g(){
- int j,k;
- }
- main(){
- f();
- g();
- }
復(fù)制代碼
在這個例子里面,局部變量i和j會共享同一個RAM地址,k就剩下來了,沒有其他函數(shù)跟k共享同一個地址。
調(diào)用f()會改變g()的局部變量j的值,同樣的調(diào)用g()會改變f()的局部變量i的值,但是只要不調(diào)用g()那么沒有其他函數(shù)會改變k的值。 |
|