MPLab V8.43をインストールし、プログラミング用のC18コンパイラをインストールしました。小さなテストコードを作成しようとすると、最初の変数宣言で停止します。構文があると書いてあります。
unsigned char counter;
私には間違って見えません...unsignedcharcounter[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 */
}
charデータ型のカウンター変数があるため。しかし、それは配列や文字列ではありません。
so you can't access it by counter[1].
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 */
}
お役に立てば幸いです。