2

MPLAB C18 v3.36 コンパイラを使用して次のコードをコンパイルしようとしています。

コンパイラは、'char rij;' で構文エラーを返します。しかし、char rij; を入れると、1 行前 (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;
 }    
}
4

1 に答える 1

8

私はこのコンパイラに精通していませんが、宣言とステートメントを混在させることを禁止する C89 セマンティクスに従っていると思います。したがって、ブロックの先頭でのみ変数を宣言できます。

于 2010-10-19T17:33:03.183 に答える