what is volatile in c language?
Answers were Sorted based on User's Feedback
Answer / selvakumar vedhachalam
It is nothing but telling to compiler that this variable
will change its value at anytime by means of anything and
compiler should not make any assumption about this variable.
Normally compiler will assume that some variable will be
constant during runtime. This may lead error in checking a
registor value repeatedly. Because the register value may
be changed by anything. So for these kind of variables
should be declared 'volatile' and it be checked each time
appears in the code with out any assumption.
| Is This Answer Correct ? | 135 Yes | 11 No |
Answer / hareesha chikkapattanager parv
It is nothing but telling to compiler that this variable
will change its value at anytime by hard or outside the
controll of the program and compiler should not make any
assumption or optimize about this variable.
| Is This Answer Correct ? | 46 Yes | 5 No |
Answer / deep
consider this outside main()
int i=10;
int j = i + 10;
here smart compilers always replace the i in the second
statement with 10, when we use volatile keyword this will be
avoided and always there is a check of the i variable ,
before initialising it..
So the optimisation here is avoided
| Is This Answer Correct ? | 15 Yes | 2 No |
Answer / bhagyaraj m c
Both 1 and 2 comments are correct.
Just simplifying this
"Recompute\Refresh every time when ever the volatile is
found."
| Is This Answer Correct ? | 19 Yes | 7 No |
Answer / sudeep
It is nothing but telling to compiler that this variable
will change its value at anytime by means of anything and
compiler should not make any assumption about this variable.
| Is This Answer Correct ? | 11 Yes | 0 No |
Answer / s.m.faisal
volatile reduces the optimization .optimization means compiler should not make out that the variable has not changed its value so it reads the value directly from the register.
So while using volatile keyword compiler will directly access the variable from the memory not from the register bcz the value of the variable can be changed outside or inside the program.
| Is This Answer Correct ? | 2 Yes | 0 No |
Answer / lingaraj a
The programmer just give inform to compiler the value of
variable will change at any time without any action being by
program. The change will be made by hardware or external source.
| Is This Answer Correct ? | 6 Yes | 5 No |
Answer / justin arokiaraj.r
Volatile is used for direct memory access.it can be updated by both hardware and software .so unused volatile will not be optimized in compilation
.
| Is This Answer Correct ? | 1 Yes | 0 No |
Answer / greg
Volatile is a storage class that indicates that the
compiler should not perform any optimization on the
variable.
| Is This Answer Correct ? | 4 Yes | 8 No |
write a program that reads lines(using getline), converts each line to an integer using atoi, and computes the average of all the numbers read. also compute the standard deviation.
What is the output for the following program #include<stdio.h> main() { char a[5][5],flag; a[0][0]='A'; flag=((a==*a)&&(*a==a[0])); printf("%d\n",flag); }
what is the purpose of the code, and is there any problem with it. bool f( uint n ) { return (n & (n-1)) == 0; }
How do we print only part of a string in c?
c program to add and delete an element from circular queue using array
2) Write a program that will help Air Traffic Control for an airport to view the sequence of flights ready for take-off. The airport can accommodate 10 flights waiting for take-off at any point in time. Each flight has a unique 3 digit numeric identifier.  Each time a flight takes-off, Air Traffic Control adds a flight to the waitlist. Each time a flight is added to the waitlist, the list of flights waiting to take-off must be displayed.  When a flight is cleared for take-off, Air Traffic Control removes the flight from the waitlist. Each time a flight takes-off, the list of flights waiting to take-off must be displayed.  Sequence of take-off is the sequence of addition to the waitlist
"%u" unsigned integer print the a) address of variable b) value of variable c) name of a variable d) none of the above
write a c/c++ program that takes a 5 digit number and calculates 2 power that number and prints it?
Is null a keyword in c?
write a program to convert a expression in polish notation (postfix) to inline (normal) something like make 723+* (2+3) x 7 (not sure) just check out its mainly printing expression in postfix form to infix
How to find a missed value, if you want to store 100 values in a 99 sized array?
#define d 10+10 main() { printf("%d",d*d); }