what is difference b/w extern & volatile variable??

Answers were Sorted based on User's Feedback



what is difference b/w extern & volatile variable??..

Answer / 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

what is difference b/w extern & volatile variable??..

Answer / sathya

extern keyword is used to strike the global declaration.
but volatile its indirectly change the values in externally

Is This Answer Correct ?    5 Yes 1 No

what is difference b/w extern & volatile variable??..

Answer / mchilakala

Extern keyword specifies that the variable had been
declared globally where as volatile keyword specifies that
there is a chance of changing it's value by external
conditions.
Ex:
if we declare a variable as

"Volatile date=03/08/2011"
then output is 03/08/2011
then after one day the output will change to 04/08/2011.

Is This Answer Correct ?    3 Yes 0 No

what is difference b/w extern & volatile variable??..

Answer / anonimos

volatile variables are used on RT Embedded systems to
interface a physical memory mapped/IO mapped cell on the
computer board (volatile pointer).

Example define IO port:
#define PortA (*(volatile unsigned char *)0x3b)
unsigned char inputValue=PortA;

optimization may attempt to perform paging to hard drive of
to cache or even CPU registers so when reading from the
physical location in Mem/IO space the program will actually
read old value that was paged/cached by optimization
algorithm of the computer/board, even after the Input
changed on this Memory/IO cell.

volatile instruct the compiler to prevent optimization by
caching to registers/cache.

Is This Answer Correct ?    1 Yes 0 No

what is difference b/w extern & volatile variable??..

Answer / mani

extern variables are stored in CPU ,volatile variables are
temporary.

Is This Answer Correct ?    4 Yes 10 No

what is difference b/w extern & volatile variable??..

Answer / deepa

extern is a keyword used to declare variables as global
varible.volatile variables are temporary variable

Is This Answer Correct ?    1 Yes 7 No

Post New Answer

More C Interview Questions

What is structure padding & expalain wid example what is bit wise structure?

1 Answers  


What is a program flowchart?

0 Answers  


What is the difference function call by value & function call by reference?

6 Answers  


How can I find the day of the week given the date?

0 Answers  


write a c program to print the next of a particular no without using the arithmetic operator or looping statements?

1 Answers   TCS,






Differentiate between full, complete & perfect binary trees.

0 Answers  


Write a program to find whether the given number is prime or not?

6 Answers  


main use of recursive function a) processing speed high b) reduce program length/reduce repeated statements c) if you do not, use iterative methods like, for, while or do-while d) all the above

0 Answers  


n=7623 { temp=n/10; result=temp*10+ result; n=n/10 }

7 Answers   Wipro,


study the code: #include<stdio.h> void main() { const int a=100; int *p; p=&a; (*p)++; printf("a=%dn(*p)=%dn",a,*p); } What is printed? A)100,101 B)100,100 C)101,101 D)None of the above

15 Answers   Accenture, TCS,


Explain how do you view the path?

0 Answers  


a<<1 is equivalent to a) multiplying by 2 b) dividing by 2 c) adding 2 d)none of the above

2 Answers   HCL, NBN,


Categories