1

我正在尝试在 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;
}

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

注意:我已经for

for(int i = 0;  ...

int i;
for( i = 0; ...
4

1 回答 1

5

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

于 2013-08-24T18:18:47.707 回答