0

MPLab V8.43をインストールし、プログラミング用のC18コンパイラをインストールしました。小さなテストコードを作成しようとすると、最初の変数宣言で停止します。構文があると書いてあります。

unsigned char counter;

私には間違って見えません...unsignedcharcounter[1]としてもそれを行いました。それでも構文エラーが返ってきました。何が得られますか?何か案は?

4

3 に答える 3

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 */

}
于 2012-05-03T16:07:49.913 に答える
0

charデータ型のカウンター変数があるため。しかし、それは配列や文字列ではありません。

  so you can't access it by counter[1].
于 2012-05-03T04:28:16.737 に答える
0

mainでローカル変数を定義できますが、変数割り当てブロックまたはコード実行ブロックに従わないように定義する必要があります。

これはMPLABC18の有効な変数宣言/定義です。

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 */ 
}

お役に立てば幸いです。

于 2017-11-23T08:00:56.297 に答える