繁体   English   中英

本地变量声明放置需要Microsoft C / C ++编译器开关

[英]Microsoft C/C++ compiler switch needed for local variable declaration placement

我正在使用Microsoft C / C ++编译一些C文件,并且抱怨在块内声明局部变量。 当然,在块的开头声明它们是可以的。 我可以使用哪种编译器开关来抑制出现的错误?

非常感激,

克里斯

在C89和更早版本中,所有块范围变量声明必须在任何语句之前。 C99更改了此规则,因此可以像在C ++中那样将声明和语句混合在一起。

不幸的是,Microsoft选择了不支持Visual Studio中的C99,并且没有AFAIK的计划。

在标准C中,您只能在开头声明变量。 这不同于C ++,在C ++中,可以在任何地方声明变量。

因此,必须通过/TP将文件编译为C ++。

有关更多详细信息,请参见本文

CL.exe /Tpfilename

它的意思是“不管扩展名都是C ++编译”。

或者,换句话说,您的操作在C语言中是非法的,因此当然会抱怨。 将其更改为C ++或强制将其读取为C ++。

您可以使用/ TP强制编译器将它们编译为C ++文件。 但是,我不确定这是否是您想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM