当我查看GCC 8的新闻时,我锯子他们增加了对2017年C语言版本的支持(不是C++17,真正的C17)。但我在网上找不到任何关于它的信息。
是像C11那样的新的C11版本,还是GCC团队在编译器中修改的代码?
发布于 2017-11-28 11:05:26
根据GCC参考,C17实际上是一个bug修复版C11标准的,并集成了DR分辨率。
C17,一个错误修正版的C11标准,与DR缺陷报告解决方案集成了,不久将进行投票。此修补程序添加了相应的选项
-std=c17,-std=gnu17(新的默认版本,替换-std=gnu11为默认版本),-std=iso9899:2017。作为该标准的bug修复版本,不需要使用flag_isoc17或任何兼容性警告选项;但是,存在一个新的__STDC_VERSION__值,因此添加了新的cpplib语言CLK_GNUC17和CLK_STDC17,以支持在新选项中使用该新值。(如果该标准最终于2018年发布,并被称为C18,则可以添加选项别名。但是请注意,-std=iso9899:199409对应的是__STDC_VERSION__值,而不是发布日期。) ( GCC有几项决议需要执行,但这与新方案无关。)
因此,C17中没有新的特性。
(C类历史)说:
未来发展 C17下一次小C语言标准修订版,将包括所有公认的C11缺陷报告,但没有新的特性。
更新:
ATOMIC_VAR_INIT的弃用和对下列缺陷报告的修复:[博士400],[401博士],[402博士],[403博士],[404博士],[405博士],[406博士],[博士407],[410博士],[412博士],[414博士],[415博士],[博士416],[417博士],[博士419],[423博士],[426博士],[428博士],[博士429],[430博士],C62,C63,[博士434],<>代码c65/code>,代码>代码>代码,代码,代码,代码<,代码>,代码>,代码>>>,<代码>><>代码>><>代码>><>代码>><>代码>><>C62><>C62<>C 63>>C>代码><>>代码><>C><>代码><>C>>><>代码><>C>><>><>C><代码代码>代码>代码>[博士448],[450博士],[博士452],[博士453],[博士457],[博士458],[博士459],[460博士],[博士462],[博士464],[465博士],[博士468],[470博士],[博士471],[博士472],[博士473],[博士475],[477博士],[480博士],[博士481],[485博士],C 94代码,c 95代码。
发布于 2018-10-09 13:26:47
C17是"M.S Chaudhari“注意到的C标准的”错误修正版“。然而,有非常有用的信息准备由Jens Gustedt的作者,"Modern C"的书。
他确定了C17与C11相比的以下更改列表
tss_t)和线程退出(7.26.5 p3,7.26.5.5,7.26.6)_Alignas (6.7.5),aligned_alloc (7.22.3.1)ilogb,erfc,lgamma。clock的低规格化(7.27.2.1)realloc的低规格(7.22.3.5)FLT_ROUNDS (F.2 p1)tmpnam_s、snprintf_s、sprintf_s、vsprintf_s、get_s、mbstowcs_s、wcstombs_s、snwprintf_s、swprintf_s、vsnwprintf_s、<>D78、D 79、D80。链接到主页C17。
另外,这个内容将由Jens更新,您可以在这里进行牛仔裤Gustedt博客更新。
P.S: before posting all this stuff I received approval from the author.
https://stackoverflow.com/questions/47529854
复制相似问题