In C, storage class provides information about their location and visibility.
C provides four storage classes as:
- auto storage class
- register storage
- extern storage class
- static storage class
- Storage class determines its storage duration, scope and linkage.
- Storage duration is the period during which that identifier exists in the memory.
- Scope is where the identifier can be referenced in a program.
- Linkage determines for a multiple-source file.
Let's summarised all storage classes in C as following as:
Features | Automatic Storage Class | Register Storage Class | Static Storage Class | External Storage Class |
Keyword | auto | register | static | extern |
Initial Value | Garbage | Garbage | Zero | Zero |
Storage | Memory | CPU register | Memory | Memory |
Scope | scope limited,local to block | scope limited,local to block | scope limited,local to block | Global |
Life | limited life of block,where defined | limited life of block,where defined | value of variable persist between different function calls | Global,till the program execution |
Memory location | Stack | Register memory | Segment | Segment |
Example |
void main() |
{ |
auto int i; |
printf("%d",i); |
} |
OUTPUT |
124 |
|
void main() |
{ |
register int i; |
for(i=1; i<=5 ; i++); |
printf("%d ",i); |
} |
OUTPUT |
1 2 3 4 5 |
|
void add(); |
void main() |
{ |
add(); |
add(); |
} |
void add() |
{ |
static int i=1; |
printf("\n%d",i); |
i=i+1; |
} |
OUTPUT |
1 |
2 |
|
void main() |
{ |
extern int i; |
printf("%d",i); |
int i=5 |
} |
OUTPUT |
5 |
|
FIGURE: Table of Storage classes in C
You might also like to read:
- What is storage classes in C
- Automatic storage class
- Register storage class
- Static storage class
- External storage class
No comments:
Post a Comment