Linux ACCESS_ONCE宏定义如下:
#define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x))
Run Code Online (Sandbox Code Playgroud)
我明白这是做什么的,但想知道它为何如此复杂?我的理解是它做了以下事情:
任何想法为什么不以更简单的方式实现,说:
#define ACCESS_ONCE(x) ((volatile typeof(x))(x))
Run Code Online (Sandbox Code Playgroud)