MPLab / C prg /变量

时间:2012-05-03 03:56:33

标签: variables mplab

我安装了MPLab V8.43并且刚安装了C18编译器进行编程。 每当我尝试构建一个小的测试代码时,它会在第一个变量声明处停止。它说有一种语法。

unsigned char counter;

对我来说没有错...甚至把它作为无符号字符计数器[1];它仍然向我抛出语法错误。 是什么赋予了?有什么想法吗?

3 个答案:

答案 0 :(得分:1)

必须在块的顶部声明局部变量(在本例中为函数。)这是根据C89标准。

这些是可以接受的:

void functionname(void)
{
    unsigned char counter;

    /* rest of code */
}

void functionname(void)
{
    /* code */

    for (unsigned char counter = 0; counter<30; counter++)
    {
    }

}

这是不可接受的:

void functionname(void)
{
    /* code */

    unsigned char counter = 0; 

    /* more code */

}

答案 1 :(得分:0)

因为你有char数据类型的计数器变量。但它不是数组或字符串。

  so you can't access it by counter[1].

答案 2 :(得分:0)

您可以在main中定义局部变量,但是应该定义它们,以便它们不遵循变量赋值块或代码执行块。

这是MPLAB C18中的有效变量声明/定义:

void main ()
{
    /* Declare or Define all Local variables */
    unsigned char counter;   
    unsigned char count = 5;

    /* Assignment Block or the code Execution Block starts */ 
    conter++;
    count++; 
}

但是,这是无效的,会导致'语法错误':

void main ()
{
    /* Declare or Define all Local variables */
    unsigned char count = 5;

    /* Assignment Block or the code Execution Block starts */ 
    count++; 

    /* What??? Another variable Declaration / Definition block */ 
    unsigned char counter;     /* Hmmm! Error: syntax error */ 
}

希望有所帮助!