c - 在 for 语句中声明变量时出错

标签 c visual-studio-2010 variables for-loop

C 中是否不允许在 for 中声明变量? 这是代码,

for(int i = 1; i<max; i++)

我收到错误消息,

错误 C2143:语法错误:缺少“;”在“类型”之前
错误 C2065:“i”:未声明的标识符

如果我在 for 循环之前声明变量 i 就可以了,

int i;
for(i = 1; i<max; i++)

我从没想过这么简单的一行代码会出现错误消息。你能帮我解释一下这背后的原因吗?

编辑:
我有 Visual C++ 2010 Express。我正在使用命令行编译器 cl

更新:
根据回复,我发现 Visual C++ 2010 不支持 C98。

我终于安装了 Visual Studio 2013 Express for Desktop,它支持 C98 并且按预期工作。
感谢大家提供的宝贵信息。

最佳答案

较旧的 MSVC 版本仅支持 c89 标准。

C99 之前的标准,如 c89 不允许在 for-loop-params 中声明变量。

也许使用/TP选项,这会导致文件以C++模式编译。

关于c - 在 for 语句中声明变量时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21696983/

相关文章:

c - 为什么这些构造使用增量前和增量后未定义的行为?

c - Linux 和 Windows 上的 malloc_size 替代方案

c# - 使用 C# 在 Visual Studio 2010 中使用预处理器指令

javascript - JavaScript 中 onclick 属性的变量范围

java - 在没有初始化器的情况下将局部变量声明为 final 并在 if 语句中分配

JavaScript 问号? : logical syntax, 防御性编程

c++ - mxDestroyArray 是否可以正确地释放重新分配的矩阵或大小已更改的矩阵?

c - 我应该在发生 fatal error 时释放分配的内存吗?

visual-studio-2010 - 在 VS 2010 中找不到 VSIX 项目类型

c# - 为什么 "ORDER BY"会破坏我的查询?