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