C Storage Classes
C Storage Classes in C
In the C programming language, storage classes define the scope (visibility), lifetime (duration in memory), and linkage (access across files) of variables and functions.
There are four types of storage classes in C:
autoregisterstaticextern
Let’s dive into each one in detail.
🔹 auto Storage Class
- It is the default storage class for variables declared inside a block (function or loop).
- Variables declared with
autoare stored in memory (stack). - Lifetime: Limited to the block.
- Scope: Local to the block.
- Linkage: None.
🔸 Example
#include <stdio.h>
void demo() {
auto int x = 5; // same as just `int x = 5;`
printf("%d\n", x);
}
void count() {
register int i;
for (i = 0; i < 5; i++) {
printf("%d ", i);
}
}
void demo() {
static int counter = 0;
counter++;
printf("Counter: %d\n", counter);
}
file1.C
int count = 100;
fil2.C
extern int count;
void show() {
printf("Count is %d\n", count);
}