volatile和__volatile__之间的区别

Gab*_*ern 3 c gcc volatile

使用gcc编译的C代码volatile和之间有什么区别__volatile__

我正在查看Linux源代码,我注意到有些地方使用__asm__ __volatile__其他地方asm volatile而其他人使用__asm__ volatile.

我没见过__volatile__没用__asm__,虽然我已经看到volatile在其他各种地方使用过.

什么__volatile__volatile做有什么区别?如果是这样的话是什么?或者,如果没有,__volatile__有时使用的原因是什么?

Pau*_*l R 8

这仅用于向后兼容遗留代码.加入到C在以后的生活中的关键词,如inline,volatile,asm,等,都强调前缀/后缀版本(__inline__,__asm__,__volatile__等),这样就可以在已经使用了朴实的名称作为类型/功能/变量遗留代码中使用/随你.有一个控制它的命令行开关,-ansi- 当您gcc -ansi ...只使用这些较新的关键字的下划线版本进行编译时,可以识别.