为什么这不能在 C18 中编译?
我正在尝试使用 MPLAB C18 v3.36 编译器编译以下代码。
编译器在“char rij;”上返回语法错误。 但是当我放 char rij 时;前面一行(TRISA = ...之前),它编译...
void setup(void)
{
TRISD = 0b00000000;
TRISA = 0b00000000;
char rij;
for (rij = 0; rij<ROWS; rij++)
{
red_byte_array[rij]=0;
green_byte_array[rij]=0;
blue_byte_array[rij]=0;
}
}
I'm trying to compile the following code using the MPLAB C18 v3.36 compiler.
Compiler returns a syntax error on 'char rij;'.
But when i put char rij; a line earlier (before TRISA = ...), it compiles ...
void setup(void)
{
TRISD = 0b00000000;
TRISA = 0b00000000;
char rij;
for (rij = 0; rij<ROWS; rij++)
{
red_byte_array[rij]=0;
green_byte_array[rij]=0;
blue_byte_array[rij]=0;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
虽然我不熟悉这个编译器,但我猜测它遵循 C89 语义,禁止将声明与语句混合。因此,您只能在块的开头声明变量。
Although I'm not familiar with this compiler I would guess that it follows C89 semantics which forbid mixing declarations with statements. Therefore you can only declare variables on the beginning of the block.