我知道C11标准只有一个月的历史,但是_Atomic的草案要老得多。我也知道GCC编译器在标准正式通过之前就认真地实现了这些特性。但即便是那里,这种支持也尚未准备好进入黄金时段。
但是,我也会对其他编译器感兴趣: Visual或嵌入式编译器cq。环境。是否有编译器提供者准备提供这种支持?欢迎任何链接。
我在问这个问题,因为我在从事汽车嵌入式开发,我想知道我自己是否应该走向这个方向。到目前为止,大多数环境(如AutoSAR或Vector支持)都在提供本土开发的解决方案,而新标准现在为这些解决方案提供了特定的语法和语义,只要编译器作者不朝着C11的方向前进,这将仍然是唯一真正的解决方案。
发布于 2012-01-05 11:09:18
我认为支持关键字本身需要一些时间,我还没有看到一些东西。关于库支持(支持功能),已经有更多了。尤其是,我知道gcc为大多数平台实现了原子操作的泛型函数,在整数类型上实现__sync_...。
我目前正在为P99 for C11开发一个遵从层。线程部分( POSIX线程之上)已经存在,atomics (使用gcc原语)很快就会完成。这将是一个通用的实现,通过实现标准中预见的类型属 atomic_...函数的宏来支持所有基本类型的atomics。
它就快到了,您可以在P99站点上查看第一个版本,但是我仍然需要一些时间来完成它。
发布于 2012-02-13 09:33:21
FreeBSD HEAD包括一个可移植的版本:http://svnweb.freebsd.org/base/head/include/stdatomic.h?view=markup
它支持三种不同类型的编译器:
发布于 2012-04-16 07:20:27
Pelles版本7.00 (发布候选版本)支持它们。
http://www.smorgasbordet.com/pellesc/
https://stackoverflow.com/questions/8741299
复制相似问题