我试图让 Visual Studio 在编译项目时强制执行 ANSI C 标准,但我无法让它工作。
有小费吗?
我已阅读所有教程,启用了 /Za 选项,并将文件命名为 .c (而不是 .cpp)。但是,以下程序仍然可以成功构建:
#include <stdio.h>
void main(void)
{
for (int i = 0; i < 10; i++)
{
}
int f = 0;
}
但不应该。为了尊重 ANSI C 标准,它必须是这样的:
#include <stdio.h>
void main(void)
{
int i;
int f = 0;
for (i = 0; i < 10; i++)
{
}
}
我想要相当于 GCC 选项的“-ansi" and "-W迂腐的”。
这在VS中可能吗?
From 这一页 https://msdn.microsoft.com/en-CA/library/hh409293.aspx,MSVC 2015好像只支持C99:
C99 一致性Visual Studio 2015 完全实现了 C99 标准库,但依赖于 Visual C++ 编译器尚不支持的编译器功能的任何库功能除外(例如,未实现 )。
该页面上的任何地方都没有提及 C89 兼容性。
The /Za switch https://msdn.microsoft.com/en-us/library/0k0w269d.aspx仅禁用微软特定扩展名:
Visual C++ 编译器提供了许多超出 ANSI C89、ISO C99 或 ISO C++ 标准中指定的功能。这些功能统称为 Microsoft 对 C 和 C++ 的扩展。这些扩展默认可用,但在指定 /Za 选项时不可用。有关特定扩展的更多信息,请参阅 Microsoft C 和 C++ 扩展。
如果非 Microsoft 特定扩展是它支持的官方 C 标准(如 C99)的一部分,它不会禁用它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)