What is the difference between volatile
and __volatile__
in C code compiled with gcc?
I was looking in the Linux source code and I noticed that some places use __asm__ __volatile__
others use asm volatile
and others use __asm__ volatile
.
I have not seen __volatile__
used without __asm__
, while I have seen volatile
used in a variety of other places.
Is there any difference between what __volatile__
and volatile
do? If so what is it? Or if not is there a reason that __volatile__
is used sometimes?