gcc 为什么我们同时拥有__atomic_store_n和__atomic_store

slhcrj9b  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(489)

我正在开发一个简单的linux驱动程序,我试图理解gcc编译器的原子内置函数是如何工作的,以及它们是如何优化性能的。为什么我们需要__atomic_store__atomic_store_n?它们有什么区别?

jhdbpxl9

jhdbpxl91#

请查看gcc手册,了解两个atomic_store函数之间的区别
https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html
内置函数:void __atomic_store_n(类型 * 指针,类型瓦尔,整型存储顺序)

This built-in function implements an atomic store operation. It writes val into *ptr.

The valid memory order variants are __ATOMIC_RELAXED, __ATOMIC_SEQ_CST, and __ATOMIC_RELEASE.

内置函数:void __atomic_store(类型 * 指针,类型 * 瓦尔,整型存储顺序)

This is the generic version of an atomic store. It stores the value of *val into *ptr.

__atomic.._n方法可用于任何整数标量或大小为1、2、4或8字节的指针,而泛型版本适用于任何数据类型。

相关问题