A Storage class in C represents the scope of a variable within the program. The storage classes in C are discussed below:
Storage Classes | Storage Place | Default Value | Scope | Life-time | Features |
auto | RAM | Garbage | Local | Within function | Default storage class. |
extern | RAM | 0 | Global | Till the end of main program | Visible to all the programs. |
static | RAM | 0 | Local | Till the end of main program | Retains value between multiple functions call. |
register | Register | Garbage | Local | Within function | Faster access than other variables. |
Example:
#include<stdio.h> void demo() { static int i=0; register int j=0; auto int k=0; i++; j++; k++; printf("i = %d\n", i); printf("j = %d\n", j); printf("k = %d\n", k); } void main() { demo(); printf ("\n"); demo(); printf ("\n"); demo(); } |
Output
i = 1 j = 1 k = 1 i = 2 j = 1 k = 1 i = 3 j = 1 k = 1 |