Skip to main content

Storage Class In C Language


Introduction To Storage Classes:-

A storage class defines the scope (visibility) and life-time of variables and/or
functions within a C Program. They precede the type that they modify.
In C Language We Have Four Storage Class:

1)auto
2)register
3)static
4)extern

Now we understand one by one with suitable example as below:-

The auto Storage Class:-

This class is default storage class for all local variables.
local variabe is refered which is defined in main function as:-
int main()
{
int amount;
auto int amount;
}
in above example two variable amount defined within same storage class
'auto' and it is used only in block of function.

The register Storage class:-

this storage class is used to define local variables that should be stored
in a register instead of RAM:-
it will be defined as:-
{
register int z;
}
*The register should only be used for variables that require quick access
*register variable stored at the RAM.
*The Variable Is Lost After System Shut Down
*it might be stored in a register depending on hardware and
 implementation restrictions.

The Static Storage Class:-

this storage class instructs the compiler to keep a local variable in
existence during the life-time of the program instead of creating and destroying
it each time it comes into and goes out of scope.
*static variable can be accessed in whole program
*The static modifier may also be applied to global variables.
*when static is used on a class data member, it causes only
 one copy of that member to be shared by all the objects of its class.

Example Program For Static:-

#include <stdio.h>
/* function declaration */    //OUTPUT SCREEN:-(LINUX)
void fun(void);
static int count = 9;
/* global variable */
int main()
{
while(count--)
{
fun();
}
return 0;
}
/* function definition */
void fun( void )
{
static int m = 9;
/* local static variable */
m++;
printf("m is %d and count is %d\n", m, count);
}
When the above code is compiled and executed, it produces the following output:
m is 10 and count is 8
m is 11 and count is 7
m is 12 and count is 6
m is 13 and count is 5
m is 14 and count is 4
m is 15 and count is 3
m is 16 and count is 2
m is 17 and count is 1
m is 18 and count is 0

Extern Storage Class:-

*storage class is used to give a reference of a global variable that is
 visible to ALL the program files.
*it points the variable name at a storage location that has
 been previously defined.
*extern will be used in another file to provide
 the reference of defined variable or function
*extern is used to declare a global variable or function in another file.

Example Program:-

Save This As mainprogram.c


#include <stdio.h>
int count;
extern void write_extern();
int main()
{
count = 5;
write_extern();
return 0;
}

Now We Have To Save One More Program Named Program2.c


#include <stdio.h>
extern int count;
void write_extern(void)
{
printf("count is %d\n", count);
}                      

The Compilation And Output For This Program Is
Shown Below As:
                 
OUTPUT SCREEN (LINUX)












                   -:End:-

          THAT'S ALL ABOUT STORAGE CLASSES IN C LANGUAGE 
                      I HOPE THIS IS HELPFUL FOR YOURS
                       DON'T FORGET TO SUBSCRIBE ME
           YOU CAN CLEAR YOUR DOUBTS BY COMMENTS
                    PLEASE SHARE IN ALL SOCIAL MEDIA
                     -: THANKS A LOT:-

Comments

Popular posts from this blog

Introduction To Array In C Language

Introduction To Array: *Array Is A Type Of Data Structure Which Store Collection of Data Of  Same Type.Which Can Be Integer Float Or Character. *All arrays consist of contiguous memory locations. *The lowest address corresponds to the first element and the highest  address to the last element. Declaration Of Array:- It Consist up of 3 part :- 1.Data Type  2.Array Name 3.Size Of Array General Syntax:-                                                      data_type Array_name[size_of_array]; For Example:-  int marks[20]; in example datatype of array is int and name is marks and size is 20. * It Is Called Single Dimensional Array * the Array Size Must be Integer And it   must be greater than zero. Initialization Of Array: *We initialize an array in C either one by one or using a single statement           ...

Introductution To Structures In C Language

About Structure:- Arrays allow to define a type of variables that can hold several data items of the same kind. Similarly, structure is another user-defined data type available in C that allows to combine data items of different kinds. Let Us Take An Real Life Example: If We want to track the following attributes about each book: 1.Title (May Be String) 2.Author(May Be String) 3.Subject (May Be String) 4.Book ID (Integer Type) Than We Have to Define A Structure Variable That Can Take This Different Type Of Data-Types. Syntax For Defining A Structure:- struct [structure_Name] { member definition; member definition; ... member definition; } [one or more structure variables]; For Information of Student The Definition of structure Will Be: struct student_data {  char name[20];  int roll_Number;  int standered;  char father's_name[20]; } std1; //structure Vaiable   Accesing Structure Members:- The Members of structure variable accesed by Dot(.) Operator.. Let Us Take...

Types Of Array In C language

Two Dimensional Array :- * It Is The Combination Of Two One Dimensional Array * It Is Used To Implement Matrix Operation . *A two-dimensional array can be considered as a table which  will have 'a' number of rows and'b'number of columns. Declaration Of Two Dimensional Array:-   data_type Array_name [size of row][size of column]; For Example:- int matrix[3][4]; in above example we will store a matrix of 3*3. This Will Cleared From Following Figure:- *It can be represented a[i][j].where i and j represents  row and column respectively. Initialization Of Two Dimensional Array:- let us consider an array "float a[3][3]"then it will be initialized float a[3][3]={                {1.2,2.3,4.3} //initializers for row indexed by 0                {2.1,2.2,2.3} //initializers for row indexed by 1                {3.1,3.4,3.6} //initializers for row indexed by 2 ...