为什么这不能在 C18 中编译?

发布于 2024-09-28 03:50:54 字数 338 浏览 5 评论 0原文

我正在尝试使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ˇ宁静的妩媚 2024-10-05 03:50:54

虽然我不熟悉这个编译器,但我猜测它遵循 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文