Find out the address of a static variable in a function
#include <stdio.h> int myFunction(int n); long old=0; long current=0; int main() { int k = 4,i; long diff; i =myFunction(k); printf("i = %d\n",i); diff = old - current; printf("stack overheads are %16lu\n",diff); } int myFunction(int n) { int j; static int staticVariable=0; if(staticVariable==0){ old =(long) &j; } if(staticVariable==1){ current =(long) &j; } staticVariable++; printf("the address of j and staticVariable is %16lu %16lu\n",&j,&staticVariable); if(n<=0){ return(1); }else{ return(n*myFunction(n-1)); } }
1. | Demonstrate the use for permanent and temporary storage | ||
2. | Static versus automatic variables | ||
3. | Define static variable inside function | ||
4. | Define and use static variable |