【问题标题】:Syntax error found int expecting ; C ICC12 Compiler发现 int 期望的语法错误; C ICC12 编译器
【发布时间】:2014-03-23 14:58:28
【问题描述】:

我有以下代码

#include <hcs12dp256.h>

void spinloop(int spins)
{
 for (int i=0; i<spins; i++)
 {
  i ++;
 }
}

void main(void)
{
 DDRK = DDRK & 0x0F;
 PORTK = PORTK & 0x00;

 PORTK = PORTK | 0x01;
 PORTK = PORTK | 0x02;

 spinloop(100000);

 PORTK = PORTK & 0x0C;
 PORTK = PORTK | 0x03;
 PORTK = PORTK | 0x04;
}

当我去编译它时,我遇到了很多错误,主要是在 for 循环周围。我在第 5 行收到以下错误

Syntax error found int expecting ;

紧随其后

Syntax error found int expecting )
Skipping int

我不太确定问题出在哪里,我对这种编码还很陌生,所以我可能只是遗漏了一些简单的东西。

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: c compiler-construction port


    【解决方案1】:

    变化:

    for (int i=0; i<spins; i++)
    

    int i;
    for (i=0; i<spins; i++)
    

    您的编译器可能不支持 C99。

    【讨论】:

      【解决方案2】:

      而不是

      for (int i=0; i<spins; i++)
      

      使用

      int i;
      for (i=0; i<spins; i++)
      

      注意-在 c 中我们不能在 for 循环中定义变量

      【讨论】:

      • 其实我们可以在C99及以后的循环中定义变量,但是对于C99之前的C,这个语句是正确的,这很可能是手头错误的根源。
      • 是的,但默认情况下 gcc 处于 C90/C89 模式。这就是它不起作用的原因。除非我们告诉编译器在 C99 模式下运行,否则它会抛出这个错误。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-03
      • 2013-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多