聘我网

新概念招聘3.0

这种代码的目的是什么?

vote up0vote downstar
#define ngx_memory_barrier()   __asm__ volatile ("" ::: "memory")

什么情况下有用?

 

1 个答复

vote up0vote downcheck

内存屏蔽(Memory Barrier),这里有篇文章介绍这个操作的必要性。

__asm__ volatile ("" ::: "memory")GCC Inline Assembly,只有gcc才能明白,因而只对gcc这个编译器起作用,对CPU是无效的。

更新

关键字volatile

volatile int64_t cnt_writerec;         /* tesing counter for record write times */

表明某个变量的值可能在外部被改变,

因此对这些变量的存取不能缓存到寄存器,

每次使用时需要重新存取。

该关键字在多线程环境下经常使用。

参考:

详解C中volatile关键字

链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.