在我的平台(X86,Fedora,gcc 9.1.1)上,将sig_atomic_t
类型定义为普通的int
。
在C ++标准中,sig_atomic_t
总是与volatile
限定符一起使用。
我知道为什么需要volatile
,但是为什么它不是该类型的一部分呢?
类似的东西:
using sig_atomic_t = volatile int;
答案 0 :(得分:4)
这是从C继承的。尽管C定义允许sig_atomic_t
是volatile限定的,但不需要它。我看过的标准文档(N1570)中使用的所有示例均以volatile sig_atomic_t
的形式给出。
这几天,最好使用std:atomic
标头when feasible中的<atomic>
和其他功能。 (另请参见cppreference上的sig_atomic_t。)
答案 1 :(得分:3)