Storage Classes in C
Storage classes are used to define scope and life time of a variable. There are four storage classes in C programming.
Storage Classes | Storage Place | Default Value | Scope | Life-time |
---|---|---|---|---|
auto | RAM | Garbage Value | Local | Within function |
extern | RAM | Zero | Global | Till the end of main program, May be declared anywhere in the program |
static | RAM | Zero | Local | Till the end of main program, Retains value between multiple functions call |
register | Register | Garbage Value | Local | Within function |
The auto keyword is applied to all local variables automatically. It is the default storage class that is why it is known as automatic variable.
#include <stdio.h> void main( ) { int a=20; auto int b=20; //same like above printf("%d %d",a,b); } Output: 20 20
register int counter = 0;
3) static
The static variable is initialized only once and exists till the end of the program. It retains its value between multiple functions call.
The static variable has the default value 0 which is provided by compiler.
#include <stdio.h> void change( ) { static int i=0; //static variable int j=0; //local variable i++; j++; printf("i = %d and j = %d\n", i, j); } void main( ) { change(); change(); } Output: i= 1 and j= 1 i= 2 and j= 1
extern int counter=0;