【发布时间】:2010-11-20 05:55:09
【问题描述】:
有人可以详细说明以下 gcc 错误吗?
$ gcc -o Ctutorial/temptable.out temptable.c
temptable.c: In function ‘main’:
temptable.c:5: error: ‘for’ loop initial declaration used outside C99 mode
temptable.c:
...
/* print Fahrenheit-Celsius Table */
main()
{
for(int i = 0; i <= 300; i += 20)
{
printf("F=%d C=%d\n",i, (i-32) / 9);
}
}
P.S:我隐约记得 int i 应该在 for 循环之前声明。我应该声明,我正在寻找一个给出 C 标准历史背景的答案。
【问题讨论】:
-
查看上一个与 C 变量声明相关的问题以获取更多信息:stackoverflow.com/questions/288441/…
-
注意温度换算公式不正确;在整数算术中,它应该是
(5 * (i - 32)) / 9(缺少5)。通常,您需要浮点运算 - 但随后您需要将 printf 格式从C=%d更改为C=%./2f或类似的东西(并且您使用(5.0 * (i - 32)) / 9.0进行转换)。
标签: c for-loop gcc syntax-error