Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...

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


Please Help Members By Posting Answers For Below Questions

Why isn't it being handled properly?

1015


What is data structure in c and its types?

1038


program to find error in linklist.(i.e find whether any node point wrongly to previous nodes instead of next node)

2061


What does *p++ do?

983


What is enumerated data type in c?

1045


Explain goto?

1104


What is a c token and types of c tokens?

1018


cavium networks written test pattern ..

4039


What are enumerated types?

1123


What's a good way to check for "close enough" floating-point equality?

1111


Can a void pointer point to a function?

981


What is a program flowchart and how does it help in writing a program?

1097


Explain why C language is procedural?

1171


Explain is it valid to address one element beyond the end of an array?

1163


What are pointers? What are stacks and queues?

1085