我知道C11标准只有一个月的历史,但_Atomic
的草稿要早得多。我也知道GCC编译器在标准获得正式批准之前会认真努力实现这些功能。但即使是there,支持还没有为黄金时段做好准备。
但是,我也对其他编译器感兴趣:Visual Studio或嵌入式编译器cq。环境。是否有任何编译器提供商准备提供此类支持?欢迎任何链接。
我问,因为我从事汽车嵌入式开发,我想知道自己是否应该朝着这个方向努力。到目前为止,大多数环境(如AutoSAR或Vector OS支持)一直在提供自行开发的解决方案,新标准现在提供特定的语法和语义,只要编译器作者不向C11方向移动,这将是仍然是唯一真正的解决方案。
答案 0 :(得分:3)
我认为对关键字本身的支持需要一些时间,我还没有看到。对于图书馆支持(支持功能)而言,已有更多。特别是我知道gcc在大多数平台上对整数类型实现原子操作__sync_...
的泛型函数。
我目前正致力于C11的P99合规层。线程部分(在POSIX线程之上)已经存在,原子(使用gcc原语)很快就会完成。这将是一个通用实现,通过宏实现所有基类型的原子,实现标准中预见的type generic atomic_...
函数。
几乎就在那里,您可以在P99网站上查看第一个版本,但我仍需要几天才能完成它。
答案 1 :(得分:2)
FreeBSD HEAD包含一个可移植的版本:http://svnweb.freebsd.org/base/head/include/stdatomic.h?view=markup
它支持三种不同类型的编译器:
答案 2 :(得分:0)
Pelles C版本7.00(候选版本)支持它们。