我已经安装了MPLab V8.43,并且刚刚安装了用于编程的C18编译器。每当我尝试构建一个小的测试代码时,它都会在第一个变量声明处停止。它说有一种语法。
unsigned char counter;在me...even看来,使用unsigned char counter1并没有错;而且它仍然向我抛出了一个语法错误。怎么回事?有什么想法吗?
发布于 2012-05-04 00:07:50
局部变量必须在块的顶部声明(在本例中是一个函数)。这是根据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 */
}发布于 2012-05-03 12:28:17
因为您有数据类型为char的计数器变量。但它不是数组或字符串。
so you can't access it by counter[1].发布于 2017-11-23 16:00:56
您可以在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 */
}希望这能有所帮助!
https://stackoverflow.com/questions/10424885
复制相似问题