C语言中的原子类型是什么?

6 c types

我记得我在C语言中遇到过某些称为原子类型的类型,但我们从未研究过它们。

那么,如何做,他们不同于普通类型的喜欢intfloatdoublelong等等,和他们有什么用途?

eli*_*ide 9

原子类型是指保证在单个指令中进行读写的类型。来自gnu.org的更多解释:

24.4.7.2原子类型

为了避免不确定中断变量的访问,可以使用始终是原子访问的特定数据类型: sig_atomic_t。保证可以在一条指令中读取和写入此数据类型,因此处理程序无法在访问的“中间”运行。

该类型sig_atomic_t始终是整数数据类型,但它的类型以及它包含的位数可能因计算机而异。

数据类型: 这是整数数据类型。始终以原子方式访问此类型的对象。sig_atomic_t

实际上,您可以假定这int是原子的。您还可以假定指针类型是原子的;那很方便。这两个假设在GNU C库支持的所有机器以及我们所知道的所有POSIX系统上都是正确的。

有关更多详细信息和某些C11特定内容,请访问CppReference.com(无从属关系)。

  • @iter这确实是一个与我回答的问题不同的问题(或一组问题)。如果您想提问,请使用“[提问](/sf/)”按钮。 (2认同)