如何在Visual Studio 2010中编译纯C文件或只知道C89?

sta*_*ker 1 c visual-studio-2010

我正在尝试在Visual Studio 2010中编译OpenHMD.我开始使用Win32库项目布局.我注意到stdafx.cpp已创建并删除了该文件以及生成的标头.现在我仍然得到像这样的编译错误(内联注释):

OHMD_APIENTRY int ohmd_ctx_probe(ohmd_context* ctx)
{
    memset(&ctx->list, 0, sizeof(ohmd_device_list));
    int i;  // <-- error C2143: syntax error : missing ';' before 'type'
    for(i = 0; i < ctx->num_drivers; i++){  // <-- error C2065: 'i' : undeclared identifier
        ctx->drivers[i]->get_device_list(ctx->drivers[i], &ctx->list);
    }

    return ctx->list.num_devices;
}
Run Code Online (Sandbox Code Playgroud)

我在哪里可以强制进行纯C编译或设置C语言级别C99?这似乎是C89问题?

注意:我已经改变了for循环

for(int i = 0;  ...
Run Code Online (Sandbox Code Playgroud)

int i;
for( i = 0; ...
Run Code Online (Sandbox Code Playgroud)

Cro*_*man 5

Visual Studio不支持C99,微软也没有计划支持它,请看这里:http://www.drdobbs.com/cpp/interview-with-herb-sutter/231900562

  • 是的 - 我知道他们的开发前端主要集中在C++和C#之类,但是,我还发现世界上最大的软件公司没有,并且显然对它不感兴趣,这有点令人难以置信曾经拥有一个支持14年标准的C编译器. (3认同)