在这个问题,有人建议意见,我应该不会投的结果malloc,即
int *sieve = malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)
而不是:
int *sieve = (int *) malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)
为什么会这样呢?
我正在尝试在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)