0
 unsigned char rtc_time[6] = { pThis->hoursTens, pThis->hoursUnits, pThis->minutesTens, pThis->minutesUnits, pThis->secondsTens, pThis->secondsUnits };

コンパイルしません。エラーが表示されます (6 回):定数式が必要です

各変数は unsigned char として宣言されています。(const) にキャストしようとしましたが、うまくいきませんでした。

これは MPLAB X IDE、C 言語、Hi-Tech-PICC コンパイラ v9.65PL1 を使用したものです。

何が問題ですか?

以下のように変数を定義すると機能しますが、上記の変数を使用する必要があります。

 unsigned char rtc_time[6] = { 0x1, 0x2, 0x3, 0x4, 0x5, 0x6 };
4

2 に答える 2

8

コンパイル時に値が不明な値で配列を初期化することはできません。your の値はstructコンパイル時には不明であるため、const式ではありません。
一方、、、... はコンパイル時0x1に評価できる式です。0x2const

次のように、配列を宣言し、実行時に値を設定できます。

unsigned char rtc_time[6];
...
rtc_time[0] = pThis->hoursTens;
//go on
于 2013-04-15T20:27:12.800 に答える