what is difference b/w extern & volatile variable??
Answer Posted / antonio leite
extern states that a variable is referenced in a module but
is declared in another module. This makes the linker not
generate an error/warning when the extern variable is
referenced but wait till the declaration is stated in a
module.
volatile states that the value of a variable can be changed
anywhere in the code. This is used by the optimizer to know
that a piece of code must not be optimized when a volatile
variable is found. For example, when a variable is changed
by a interrupt timer it must be declared volatile. The code
seems to be always true because Timer_xpto seems to be
always > 0. If the code is optimized, the if would simply
disapper from the code, but this is not what the programmer
wants, so declare
extern volatile unsigned long Timer_xpto;
so that the compiler will never optimize the code below.
Timer_xpto = 100;
do something
if (Timer_xpto > 0 )
{
do any other thing
}
Here extern is stating that the variable is declared in
other module and volatile that the code where the
Timer_xpto appears must not be optimized.
See http://www.eetimes.com/discussion/programming-
pointers/4025609/Place-volatile-accurately
| Is This Answer Correct ? | 13 Yes | 0 No |
Post New Answer View All Answers
How can I sort more data than will fit in memory?
How to get string length of given string in c?
what do you mean by enumeration constant?
Explain is it valid to address one element beyond the end of an array?
Write programs for String Reversal & Palindrome check
What is extern storage class in c?
What is double pointer?
What is the difference between #include
Which is best linux os?
What are the various types of control structures in programming?
What is the significance of an algorithm to C programming?
How many keywords are there in c?
Explain c preprocessor?
in any language the sound structure of that language depends on its a) character set, input/output function, its control structures b) character set, library functions, input/output functions its control structures c) character set, library functions, control sturctures d) character set, operators, its control structures
Simplify the program segment if X = B then C ← true else C ← false