atomic_int在C语言中的用法 要使用atomic_int,首先需要包含C11标准提供的<stdatomic.h>头文件。这个头文件定义了各种原子类型及其操作函数。 atomic_int的基本操作示例 以下是一些基本的atomic_int操作示例: c #include <stdatomic.h> #include <stdio.h> int main() { atomic_int counter...
_Atomic int hogs; //hogs是一个原子类型的变量 atomic_store(&hogs,12); //stdatomic.h中的宏 这里,在hogs中存储12是一个原子过程,其他线程不能访问hogs。 编写这种代码的前提是,编译器要支持这一新特性。 参考资料: 1.史蒂芬・普拉达. C Primer Plus (第6版) 中文版[M]. 人民邮电出版社, 2016. 2...
#define ATOMIC_INT_LOCK_FREE /* implementation-defined */ #define ATOMIC_LONG_LOCK_FREE /* implementation-defined */ #define ATOMIC_LLONG_LOCK_FREE /* implementation-defined */ #define ATOMIC_POINTER_LOCK_FREE /* implementation-defined */ 展开成求值为0或1或2的预处理器常量表达式,它指示对应原...
定义于头文件 <signal.h> typedef /* unspecified */ sig_atomic_t; 即使缺少信号所做的异步中断,亦能作为原子实体访问的整数类型。 示例 运行此代码 #include <signal.h> #include <stdio.h> volatile sig_atomic_t gSignalStatus = 0; void signal_handler(int signal) { gSignalStatus = signal; ...
inthogs;//普通声明hogs=12;//普通赋值 1 2 可以替换成: _Atomicinthogs;//hogs是一个原子类型的变量atomic_store(&hogs,12);//stdatomic.h中的宏 1 2 这里,在hogs中存储12是一个原子过程,其他线程不能访问hogs。 编写这种代码的前提是,编译器要支持这一新特性。