unsigned char rtc_time[6] = { pThis->hoursTens, pThis->hoursUnits, pThis->minutesTens, pThis->minutesUnits, pThis->secondsTens, pThis->secondsUnits };
不编译。我收到错误(6次):需要常量表达式
每个变量都声明为无符号字符。我试着选演员,但运气不好。
这是MPLAB X IDE,C语言,使用高科技PICC编译器v9.65PL1。
怎么了?
当我按如下方式定义变量时,它起作用,但我需要使用上面的变量。
unsigned char rtc_time[6] = { 0x1, 0x2, 0x3, 0x4, 0x5, 0x6 };
最佳答案
不能用编译时未知的值初始化数组。编译时,struct
的值未知,因此不是const
表达式。
然而,0x1
,0x2
。。。是可以在编译时计算的const
表达式。
您可以声明一个数组,然后在运行时设置值,如
unsigned char rtc_time[6];
...
rtc_time[0] = pThis->hoursTens;
//go on