我记得我在C语言中遇到过某些称为原子类型的类型,但我们从未研究过它们。
那么,如何做,他们不同于普通类型的喜欢int,float,double,long等等,和他们有什么用途?
原子类型是指保证在单个指令中进行读写的类型。来自gnu.org的更多解释:
24.4.7.2原子类型
为了避免不确定中断变量的访问,可以使用始终是原子访问的特定数据类型:
sig_atomic_t。保证可以在一条指令中读取和写入此数据类型,因此处理程序无法在访问的“中间”运行。该类型
sig_atomic_t始终是整数数据类型,但它的类型以及它包含的位数可能因计算机而异。数据类型: 这是整数数据类型。始终以原子方式访问此类型的对象。
sig_atomic_t实际上,您可以假定这
int是原子的。您还可以假定指针类型是原子的;那很方便。这两个假设在GNU C库支持的所有机器以及我们所知道的所有POSIX系统上都是正确的。
有关更多详细信息和某些C11特定内容,请访问CppReference.com(无从属关系)。