unsigned char rtc_time[6] = { pThis->hoursTens, pThis->hoursUnits, pThis->minutesTens, pThis->minutesUnits, pThis->secondsTens, pThis->secondsUnits };
不编译。我收到错误(6 次):需要常量表达式
每个变量都声明为无符号字符。我试过转换到 (const) 但没有运气。
这是在 MPLAB X IDE 中,C 语言,使用 Hi-Tech-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
关于需要常量表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16024108/