微软的Visual Studio IDE增加了对C11和C17 C语言标准的支持,从而扩展了IDE之前对C的有限支持,自9月14日Visual Studio 2019 16.8预览版3发布以来,C11和C17已经成为支持的语言版本。
多年来,Visual Studio对C的支持仅限于C语言所需的任何函数,是作为C的扩展而构建的,现在编译器中加入了基于标记的一致性预处理器。添加了两个编译器开关/std3360c11和/std3360c17,以符合最新的ISO C标准。
C11和C17功能支持,例如_Pragma、restrict和Static_assert。IntelliSense可以通过使用。C源文件或/TC编译器开关来启用C代码语法突出显示。但是,IntelliSense突出显示目前仅适用于关键字,不适用于由标准头引入的宏。的未来版本将解决这个问题。
通过包含基于标记的一致预处理器,两个新的C编译器开关意味着/Zc:preprocessor。想要在C11或C17中使用传统的基于字符的预处理器的开发人员需要通过/ZC :预处理器-编译器开关。
将微软C17描述为ISO C的一个bug修复版本,版本C11和C17的唯一区别是C17中的_ STDC _版本宏。虽然Visual Studio不支持C11可选特性,但微软计划在未来版本中添加最有影响力的可选特性。产品路线图中提供了原子和线程支持。
要在程序中使用C11和C17,开发人员必须拥有Insider Preview Windows SDK的最新更新,它可以与兼容的预处理器和新的通用C运行时一起使用。开发者可以创建一个免费的微软账户(https://signup.live.com),然后选择加入Insider计划。微软发布了一套C11和C17入门指南。
Visual Studio 2019 16.8预览版3还在编译器、标准库和IDE中提供了对C 20的改进支持。模块,概念,协同学和某些范围可以在同一个项目中使用。