Introduction To Storage Classes:-
A storage class defines the scope (visibility) and life-time of variables and/orfunctions 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 storedin 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 inexistence 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);

/* 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 isvisible 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);
}
Comments
Post a Comment