What are the storage classes in C programming?

In C, storage classes play a significant role in the syntax of the name declaration. A storage class specifies the variables’ scope and the length for which they are to be stored — what we refer to as their lifespan. Additionally, it is in control of its connection.

The C programming language makes use of four distinct storage classes, namely:

Image Credits: https://blogcwi.wordpress.com/

The four storage classes are well-explained below:

1. Auto: 

This is the storage class that C uses by default for all local variables. Its period of storage is determined automatically, and it performs within functions.

2. Register

The term “register” is used here to refer to the fact that the storage class specifier instructs the compiler to place the object in question within the processor’s register. In terms of storage, the duration is likewise set automatically. The register storage class is unique in that it assists in identifying any local variable that should be saved in the register rather than in RAM (Random Access Memory). This implies that the length of your variable cannot exceed the length of the register. Normally, the size intended to accommodate the register is a single word; without the addition of something like & due to the lack of a memory place for it.

3. Static: 

This is the same type of storage that is occasionally referred to as thread storage. Its storage is static and is linked internally. This static storage class indicates to the compiler that the local variable should be preserved for the duration of the program. This is in contrast to it destroying it when it exceeds its scope. As a result of this mechanism, variables keep their exact values between function calls.

4. Extern: 

This is similar to static storage, except that the linkage is external. It is the one that enables the visibility of a global variable in all program files. However, if the variable is ‘external,’ you cannot initialize it; however, it will point you to the appropriate storage location. This is frequently the case when you have created many files. What occurs is that you define a global function or variable, and when you check out another file, you will see the term ‘extern’ used to refer to the previously specified variable or function.


Storage Classes are used to describe a variable’s/characteristics or function. These characteristics include the scope, visibility, and lifetime of a variable, which enable us to track the existence of a variable during the runtime of a program. Hence it is an important factor for C programming Language.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.