how can we use static and extern?and where can we use this?

Answer Posted / pramod

static storage class is used for the following situations
1) the variable is defined as static within a function and
we can call the function several times, but we want that the
function should initialize the variable only once that is
during the first call to that function.So the variable will
stay alive in different calls to this function
2)In C++ , if we want a common variable between all the
objects( like a counter for how many objects have been
created) then static is allocated as it is not attached to
any object but class

extern storage is for global variables
1)if we want one varibale to be available to all the
functions in our program, make the varibale as global
variable( extern storage), it will be accessed by all the
functions in that file.But avoid declaring variable as
global for security reasons( can be accessed from any other
file in the PATH) and memory reasons (global variables are
deallocated only when the entire program terminates).
2)if we declare a variable in a file as extern , then
compiler will assume that this variable is not defined in
the present file but in some other file.So while compiling
there won't bw any error but error will come at the linking
if the extern variable is not present in the refernced files.

There is one special case
static global variable

we want a variable to be global , means accessible to all
the functions in that file and want that the variable should
not be accessible to any other file, just to make it static
global variable.So the visibility of that variable becomes
file specific only.

Is This Answer Correct ?    3 Yes 1 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What are register variables? What are the advantage of using register variables?

689


will u please send me the placement papers to my mail???????????????????

1367


Input is "rama loves rajesh and rajesh Loves rama also and rajesh wear gloves and bloves" To print output is count the numbers of times repeted the word love without case sensitive.

1599


writ a program to compare using strcmp VIVA and viva with its output.

1529


What are unions in c?

585






Explain what is the general form of a c program?

627


What the advantages of using Unions?

677


how to make a scientific calculater ?

1568


What do you understand by friend-functions? How are they used?

652


What is string concatenation in c?

570


What does malloc () calloc () realloc () free () do?

563


What is define directive?

644


write a c program in such a way that if we enter the today date the output should be next day's date.

1685


Explain what are the different file extensions involved when programming in c?

639


Explain what is dynamic data structure?

649