1 / 24

Storage Class

Storage Class. In C Programming Language. Introduction. Basically, computer allocates space for variables in TWO ways Memory CPU Registers. Why Storage Classes?. Where the variable would be stored? Memory or CPU Registers What will be the initial value of the variable?

kathrync
Download Presentation

Storage Class

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Storage Class In C Programming Language

  2. Introduction • Basically, computer allocates space for variables in TWO ways • Memory • CPU Registers

  3. Why Storage Classes? • Where the variable would be stored? • Memory or CPU Registers • What will be the initial value of the variable? • i.e., default value (Starting value) • What is the scope of the variable? • For which function the value of the variable would be available • What is the life time of a variable? • How long would be variable exists

  4. Types Storage Classes • There are FOUR types of storage classes • Automatic Storage class (auto) • Register Storage class (register) • Static Storage class (static) • External Storage class (extern)

  5. Automatic Storage Class

  6. Example 1 #include<stdio.h> int main(){ inti;     auto char c;     float f; printf("%d  %c  %f",i,c,f);     return 0; } Output: Garbage Garbage Garbage

  7. Example 2 #include<stdio.h> int main(){ int a=10;     { int a=20; printf("%d",a);     } printf(" %d",a);     return 0; } Output: 20 10

  8. Example 3 #include<stdio.h> int main(){     { int a=20; printf("%d",a);     } printf(" %d",a);  //a is not visible here     return 0; } Output: Compilation error

  9. Example 4 #include<stdio.h> int main(){ inti;     for(i=0;i<4;i++){ int a=20; printf("%d",a);          a++;     }     return 0; } Output: 20 20 20 20

  10. Register Storage Class

  11. Example 1 #include<stdio.h> int main(){     register int a=10;     int *p;     p=&a;     printf("%u",p); } Output: Compilation error

  12. Example 2 #include<stdio.h> int main(){     register int a,b;     scanf("%d%d",&a,&b);     printf("%d  %d",a,b); } Output: Compilation error

  13. Static Storage Class

  14. Example 1 #include<stdio.h> int a; int main(){     printf("%d",a);     return 0; } Output: 0

  15. Example 2 #include<stdio.h> static int a; int main(){     printf("%d",a);     return 0; } Output: 0

  16. Example 3 #include <stdio.h> static char c; static inti; static float f; int main(){ printf("%d %d %f",c,i,f);     return 0; } Output: 0 0 0.000000

  17. Example 4 #include <stdio.h> static int i=10; int main(){     i=25;       //Assignment statement     printf("%d",i);     return 0; } Output: 25

  18. Example 5 #include<stdio.h> int main(){     {                                 static int a=5;      printf("%d",a);     }                            //printf("%d",a);   variable a is not visible here.     return 0;    } Output: 5

  19. External Storage Class

  20. Example 1 #include <stdio.h> int i;    //By default it is extern variable int main(){     printf("%d",i);     return 0; } Output: 0

  21. Example 2 #include <stdio.h> extern int i;    //extern variable int main(){     printf("%d",i);     return 0; } Output: Compilation error, undefined symbol i.

  22. Example 3 #include <stdio.h> void sum(int,int) //By default it is extern. int main(){ int a=5,b=10;     sum(a,b);     return 0; } void sum(inta,int b){ printf("%d”",a+b); } Output: 15

  23. Example 4 #include <stdio.h> extern int i=10;    //extern variable int main(){     printf("%d",i);     return 0; } Output: 10

  24. Example 5 #include <stdio.h> int main(){ extern int i=10; //Try to initialize extern variable locally.     printf("%d",i);     return 0; } Output: Compilation error: Cannot initialize extern variable.

More Related