Storage Classes in C

In C language, four types of storage classes are used to store the variables in the RAM or CPU memory register.

  • auto storage class
  • static storage class
  • register storage class
  • extern storage class

auto storage class

It is the default storage class, it is used to declare variables with the keyword auto.
Example :

void main()
{
void test(void);
auto int x;
{
auto int x=20;
printf("Value of x in inner block is %d",x);
}
test();
printf("Value of x in outer block is %d",x);
}
void test(void);
{
auto int x=25;
printf("Value of x in functional block is %d", x);
}

 

static storage class

Static variables are active in the block in which they are declared and they retain the new value, it is also used to declare variables with the keyword static.

Example :

void main(){
void test(void);
printf("First functional call");
test();
printf("Second functional call");
test();
}
void test()
{
static int x=10, y=20;
x=x+10;
y=y+10;
printf("Value of x is : %d and y is : %d",x,y);
}

 

register storage class

Variables declared using this class are stored in the CPU memory register, it is used to declare variables with the keyword register. Only a few variables are used in the program declared by using this class to improve the program execution speed.

Example:

void main()
{
register int x=10;
register char sk='Hello';
printf("Value of x is : %d",x);
printf("Value of choice sk is : %c",sk);
}

 

extern storage class

Extern class is used to consider a local variable in a block as a global variable, it is used to declare variables with the keyword extern.

Example:

void main()
{
extern int x,y;
void test();
x=10;
y=20;
test();
printf("Value of x is : %d and y is : %d",x,y);
}
void test()
{
extern int x,y;
printf("Value of x is : %d and y is : %d",x,y);
x=x+10;
y=y+10;
}