AnT*_*AnT 20 c c99 visual-studio
我看到VS2013增加了对C99的大量主要核心语言功能的支持.现在它支持复合文字,指定初始化器,可变参数宏,交错声明和语句,仅举几例.
这表明VS开发人员在Visual Studio中为C99支持迈出了重要的一步.然而,其中一些功能并不是C++语言的一部分,这似乎与之前宣布的开发策略有明显的偏差(例如"VS C编译器只支持那些也是C++一部分的C99功能").
那么,有什么官方或半官方的话说明发生了什么?我似乎无法在网上找到任何确定的内容.这些C99功能是否正式公布?是否有任何承诺继续在VS中支持C99?或者这只是某种"流氓"的非官方发展?
Sha*_*our 10
微软开发人员对此进行了一些公开的官方讨论,C++一致性路线图说:
Herb还宣布,为了响应客户的要求,RTM版本在编译C代码时还将包含一些战术C99语言扩展,以便一些流行的社区库(包括FFmpeg)现在能够使用Visual C++ 2013进行编译.
所以这有官方的支持,但具有战略意义,从以下文章可以看出,更多的支持必须与其他优先事项竞争.
我们在STL的VS 2013博客条目中有C++ 11/14 STL功能,修复和重大变化:
此外,一些C99核心语言功能将在2013 RTM中实施:
C99 _Bool
C99复合文字
C99指定的初始化器
C99变量声明
和C99库支持在Visual Studio 2013年帕特布伦纳博客条目与打开:
在这篇博文中,我想分享一些有关在Visual Studio 2013中添加到C运行时库的C99支持的信息.
并结束于:
我们知道这不完全支持C99库函数.据我们所知,缺少的部分是这些:
- 缺少tgmath.h标头.此标头需要C编译器支持.请注意,添加了ctgmath标头 - 这是可能的,因为该标头不需要tgmath.h标头 - 仅ccomplex和cmath标头.
- 缺少uchar.h标头.这是来自C Unicode TR.目前还不支持printf系列中的几个格式说明符.
- stdio.h和wchar.h中缺少snprintf和snwprintf函数.
这更有趣,因为STL积极地对博客发表评论并且很难总结,但我们可以看到未来的增加将取决于相互竞争的优先级.
感谢cremno指出另一篇博客文章C Runtime(CRT)功能,修复和Visual Studio 14 CTP1中的重大变化,其中说:
在Visual Studio"14"CTP中,我们完全实现了C99标准库,但任何依赖于Visual C++编译器尚未支持的编译器功能的库功能(特别
<tgmath.h>是未实现)除外.毫无疑问,一些剩余的一致性问题 - 我们知道一些,包括_Exit丢失,wcstok有错误的签名,我们正在努力解决这些问题.如果您发现错误或缺少功能,请在Microsoft Connect上进行报告.如果您现在报告错误,我们很有可能在RTM之前修复它们.
并且有很多不容易总结的细节.
| 归档时间: |
|
| 查看次数: |
4631 次 |
| 最近记录: |