有没有在Visual Studio中切换C99和C11 C标准的选项?

13 c c99 visual-studio visual-c++ c11

我是Visual Studio Environment的新手,我正在使用VS2017 Pro.我想在C中编写简单的程序,并使用c99c11标准编译.在Visual Studio中,我只能找到C++标准的编译器开关.

我们怎样才能知道我们要来编译当前的代码以Visual Studio环境c99c11 Ç标准.

编译开关

标准开关

Chu*_*urn 13

Visual C++支持的唯一"模式"是:/std:c++14C++ 14一致性模式(默认),/std:c++17C++ 17支持模式,从VS 2017(15.6)开始并不完全.还有一种/std:c++latest模式在某种程度上将包含C++ 20中的内容.所有这些都应该结合起来 /permissive-以提高一致性.

为了满足C++ 11标准库的一致性,Visual C++必须支持C99标准库,这与支持C99语言一致性不同.

在某些时候,为了满足C++ 17标准库的要求,Visual C++必须支持C11标准库,并且这与C11语言一致性不同.

请参阅VS 2013中的MicrosoftC++ 11/14 STL功能,修复和重大更改中的C++标准一致性

帖子MSVC中有一个评论帖子:Windows的最佳选择,其中Visual C++项目经理会遇到真正的"C11"一致性问题

__PRE__


Lun*_*din 5

Visual Studio主要是C ++编译器。在“ C模式”下,它遵循1990年以来的古老C标准。

在2013-2015年左右,他们付出了一些努力,以支持当前版本,而不是1999年发布的16年后的C标准(“ C99”)。但是,符合该标准的工作尚未完成。

我相信编译器还支持当前C语言(“ C11”)的一些选定功能,例如可选的边界检查库。该标准已经使用了7年,但并未得到完全支持。

因此,如果您需要兼容的C语言编译器,则应寻找其他选择。

  • 人们可能需要 C 编译器的原因之一可能是针对 Microsoft Windows API 进行编程,该 API 是用 C 编写的。因此,如果您打算进行 Windows 编程,我建议您选择不同的编译器。 (2认同)
  • 您可以绝对使用C ++中的Windows API。标头中都带有`extern“ C”`。 (2认同)