What are Storage Classes in C ?
Answer Posted / debasis roy
There are 4 storage classes in c
1. Auto
2. Static
3. Extern
4. Register
1. Auto :
A variable,defined normally without any storage specification is treated as automatic variable.
Example :
#include<stdio.h>
void main()
{
int num; //declaration of a variable num
num=7; //assign an integer to num
printf("%d",num);
}
output
7
2.Static :
A variable is declared as static when it needs to remember it's previous value.
To declare a variable as static an explicit mention of the word 'static' is necessary.
It can be used in recursion , a function that need to remember it's previous call's change etc.
Example:
#include<stdio.h>
void see_the_change(int);
void main()
{
see_the change(5);
see_the_change(60);
see_the_change(70);
}
void see_the_change(int vulejaoa)
{
static int capture;
cature=vulejaoa;
capture++;
printf("%d ",capture);
}
output :
6 7 8
3.Extern :
when a variable needs to be reused by different functions extern variables are used.
If we define something in a function and declare it externally then we can use it in that particular scope of funcion block.
Example :
#include<stdio.h>
int m;
void in_a();
void in_b();
void main()
{
extern int m;
m=10;
printf("%d",m);
in_a();
in_b();
}
void in_a()
extern int m;
m=19;
printf("%d",m);
}
void in_b()
{
extern int m;
m=52;
printf("%d",m);
}
4.Register :
Normally one should avoid this type as if your processor lacks more number of registers then system would have been slow down.
But if you have a processor having sufficient number of registers and you need to run it in less time, i.e without wasting any time, then you should go for a register variable.
As register variable declaration stores number stored in registers like A,B,C,D,E or H-L pair and eventually those are stored in cache memory, program can access it very fast. If all registers are used then the numbers will be stored in main memory.
Example :
#include<stdio.h>
void main()
{
register int m;
m=12;
printf("%d",m);
}
| Is This Answer Correct ? | 7 Yes | 0 No |
Post New Answer View All Answers
Find MAXIMUM of three distinct integers using a single C statement
write a C program:There is a mobile keypad with numbers 0-9 and alphabets on it. Take input 0f 7 keys and then form a word from the alphabets present on the keys.
When would you use a pointer to a function?
How does pointer work in c?
If one class contains another class as a member, in what order are the two class constructors called a) Constructor for the member class is called first b) Constructor for the member class is called second c) Only one of the constructors is called d) all of the above
How are portions of a program disabled in demo versions?
what is the syallabus of computer science students in group- 1?
Explain what are the standard predefined macros?
swap 2 numbers without using third variable?
What is fflush() function?
Explain how can I convert a string to a number?
write a c program to print the next of a particular no without using the arithmetic operator or looping statements?
What is the sizeof () a pointer?
What is c++ used for today?
Explain how do you declare an array that will hold more than 64kb of data?