需要持续表达

时间:2013-04-15 20:24:51

标签: c variables embedded mplab

 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 };

2 个答案:

答案 0 :(得分:7)

您无法在编译时使用值未知的值初始化数组。 struct的值在编译时是未知的,因此不是const个表达式 而0x10x2,...是const表达式,可以在编译时进行评估。

您可以声明一个数组,然后在运行时设置值,例如

unsigned char rtc_time[6];
...
rtc_time[0] = pThis->hoursTens;
//go on

答案 1 :(得分:3)

当表达式由计算值组成时,您必须将它们作为语句执行,而不是初始值。

...
unsigned char rtc_time[6];
...
rtc_time[0] = pThis->hoursTens;
rtc_time[1] = pThis->hoursUnits;
. . .