Variables MPLab/C prg/变量

Variables MPLab/C prg/变量,variables,mplab,Variables,Mplab,我已经安装了MPLab V8.43,并且刚刚安装了用于编程的C18编译器。 每当我尝试构建一个小测试代码时,它都会在第一个变量声明时停止。它说有一个语法 unsigned char counter; 在我看来并没有错…即使是作为未签名的字符计数器[1];它仍然向我抛出一个语法错误。 有什么好处?有什么想法吗?因为您有char数据类型的计数器变量。但它不是数组或字符串 so you can't access it by counter[1]. 局部变量必须在块(在本例中为函数)顶部声明。这

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

unsigned char counter;
在我看来并没有错…即使是作为未签名的字符计数器[1];它仍然向我抛出一个语法错误。
有什么好处?有什么想法吗?

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

  so you can't access it by counter[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 */

}

您可以在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 */ 
}

希望有帮助

没关系……事实证明,你不能在嵌入式世界的主函数中声明。不是这样,你可以在C的主函数中声明,包括嵌入式世界。它必须在一个街区的顶部。我在他最初的问题中没有看到他试图用计数器[1]访问它的位置。也许是经过编辑的。