c语言变量只能在开始声明吗,C语言,vc编译器cl,如何支持变量不必在函数开始声明...

windows,用vc编译器cl.exe,编译nginx的第三方模块,有类似这样的代码报错:

static ngx_int_t

ngx_http_zip_main_request_header_filter(ngx_http_request_t *r)

{

ngx_http_variable_value_t *vv;

ngx_http_zip_ctx_t *ctx;

if ((ctx = ngx_http_get_module_ctx(r, ngx_http_zip_module)) != NULL)

return ngx_http_next_header_filter(r);

if ((vv = ngx_palloc(r->pool, sizeof(ngx_http_variable_value_t))) == NULL)

return NGX_ERROR;

/* Look for X-Archive-Files */

ngx_int_t variable_header_status = NGX_OK;

错误出在ngx_int_t variable_header_status = NGX_OK;:

mod_zip/ngx_http_zip_module.c(195) : error C2275: 'ngx_int_t' : illegal use of t

his type as an expression

查了一下,原因:由于c的编译器要求将变量的声名放在一个函数块的头部,而c++没有这样的要求造成的。把声名的三个变量放到函数的开头就可以了。

同样的代码在gcc下是可以编译通过的。

请问vc有没有什么编译选项可以支持高级一点的C。我用的vc编译器已经是vs2012自带的那个了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值